Android开发三:常用控件1--TextView、EditText、Button
上一節(jié)寫(xiě)到android的工程目錄結(jié)構(gòu),這一節(jié)繼續(xù),開(kāi)始學(xué)習(xí)控件,中間的跨度挺大,關(guān)于Activity和intent的知識(shí)我就略過(guò)了,原因很簡(jiǎn)單,網(wǎng)上的關(guān)于那個(gè)的資料特別多,而且理論的東西我這都是了解就行,那些東西,在應(yīng)用的過(guò)程中自然會(huì)熟練起來(lái),還有就是我也是新手,對(duì)于那些東西不敢寫(xiě),怕誤人...。
這次寫(xiě)的控件有三個(gè),TextView、EditText、Button。我以前學(xué)過(guò)winform,很簡(jiǎn)單就能找到對(duì)應(yīng)的空間,TextView就是一個(gè)lable標(biāo)簽,用于顯示不可編輯的文字。EditText是一個(gè)文本框,用于獲取用戶輸入的文本信息。Button就是自然一個(gè)按鈕了。
通過(guò)一個(gè)例子來(lái)學(xué)習(xí)三個(gè)控件。下面來(lái)做一個(gè)計(jì)算兩個(gè)數(shù)字和的小程序,三個(gè)控件一次學(xué)完。
在Eclipse新建一個(gè)工程,如圖:
創(chuàng)建好以后,打開(kāi)res目錄下,layout下的main.xml,切換到xml代碼視圖。把代碼修改為如下
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<EditText
android:id="@+id/num1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:inputType="number"></EditText>
<TextView
android:text="@string/symbol"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20sp"
/>
<EditText
android:id="@+id/num2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:inputType="number"></EditText>
<Button android:id="@+id/plusbtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="@string/plus" />
</LinearLayout>
?
下面講解這段代碼,這個(gè)文件首先是一個(gè)xml頭,里面是一個(gè)LinearLayout布局控件,這是一個(gè)線性布局空間,先不說(shuō),以后留著單獨(dú)學(xué)習(xí)。布局空間里面放了兩個(gè)EditText控件,用于讓用戶輸入兩個(gè)數(shù)字。中間是一個(gè)TextView控件,控件主要用來(lái)顯示文字。最后是一個(gè)按鈕控件,點(diǎn)擊計(jì)算值。
以上幾個(gè)控件都有幾個(gè)屬性:
android:id屬性,是控件的id,格式為@+id/someid,這樣在程序的R.java文件里面就能自動(dòng)生成控件的id值的索引,在程序中就可以用R.id.someid取得控件。
android:layout_width和android:layout_height屬性,分別是空間的寬和高,通常值為 fill_parent或者wrap_content,當(dāng)然也可以用數(shù)值。
android:text屬性是控件上面顯示的文本,值可以直接寫(xiě),但是不建議,一般是在res目錄下的string.xml里面定義,在代碼里用@string/str來(lái)調(diào)用,或者在后臺(tái)代碼利用R.sting.str來(lái)使用。
android:inputType 我在兩個(gè)EditText中都加入了一個(gè)inputType屬性,值為number,這個(gè)值的意思是只允許輸入數(shù)字,因?yàn)槲覀兪乔髢蓚€(gè)數(shù)字的和。可以去掉這個(gè)屬性前后比較一下。
android:textSize這個(gè)屬性就是字體的大小。單位有sp,dp,px等。可以百度一下。
最后的button上面還有一個(gè)android:layout_gravity屬性,用這個(gè)屬性,我把button設(shè)置成了居中顯示。
這個(gè)文件就講解到這里,下面來(lái)看string.xml里面的內(nèi)容
?
<?xml version="1.0" encoding="utf-8"?><resources>
<string name="hello">Hello World, Textview_EditText_Button!</string>
<string name="app_name">Textview_EditText_Button</string>
<string name="symbol">加上</string>
<string name="plus">計(jì)算</string>
<string name="warning">請(qǐng)輸入完整!</string>
<string name="about">關(guān)于</string>
<string name="exit">退出</string>
<string name="aboutmessage">天意人間,YYJ</string>
</resources>
下面三個(gè)就是我自己加的,第一個(gè)是標(biāo)簽上的文字,第二個(gè)是按鈕上面的文字。最后一個(gè)在后面的程序里面用來(lái)提示。
?
界面部分到此結(jié)束,現(xiàn)在有個(gè)樣子了,可以運(yùn)行下看看,如圖
下面來(lái)編寫(xiě)程序?qū)崿F(xiàn)功能。
下面是編寫(xiě)好的程序,Textview_EditText_Button.java的代碼
?
package com.yyj.Textview_EditText_Button;import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.Toast;public class Textview_EditText_Button extends Activity {/** Called when the activity is first created. */private EditText num1;private EditText num2;private Button plusbtn;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);num1=(EditText)findViewById(R.id.num1);num2=(EditText)findViewById(R.id.num2);plusbtn=(Button)findViewById(R.id.plusbtn);plusbtn.setOnClickListener(new OnClickListener() {public void onClick(View v) {// TODO Auto-generated method stubString numstr1=num1.getText().toString();String numstr2=num2.getText().toString();if (numstr1.length()>0&&numstr2.length()>0) {int n1=Integer.parseInt(numstr1);int n2=Integer.parseInt(numstr2);Toast.makeText(Textview_EditText_Button.this, n1+"+"+n2+"="+(n1+n2), Toast.LENGTH_LONG).show();}else {Toast.makeText(Textview_EditText_Button.this, R.string.warning, Toast.LENGTH_LONG).show();}}});} }?
接著來(lái)說(shuō)這一段代碼,先是定義了三個(gè)控件
private EditText num1;private EditText num2;private Button plusbtn;然后通過(guò)findViewById取得程序中的兩個(gè)文本框和一個(gè)按鈕
num1=(EditText)findViewById(R.id.num1);num2=(EditText)findViewById(R.id.num2);plusbtn=(Button)findViewById(R.id.plusbtn);?
findViewById的作用就是通過(guò)id的到控件,它的參數(shù)就是控件在R.java文件中生成的id索引。感覺(jué)類(lèi)似于javascript中的getElementById…
然后給按鈕綁定點(diǎn)擊事件,這個(gè)應(yīng)該在java中學(xué)過(guò),我接觸java不太多,不太清楚。plusbtn.setOnClickListener(),學(xué)過(guò)java的應(yīng)該很容易看懂。
最后要說(shuō)的一點(diǎn)就是后面的那個(gè)Toast。這是android中的一個(gè)提示,效果如下
,過(guò)一段時(shí)間后會(huì)自己消失,用來(lái)顯示信息效果挺好。
最后運(yùn)行程序,如下圖
點(diǎn)擊計(jì)算按鈕后,注意劃紅線部分。
恩,此節(jié)到此完成。
至于理論部分,我這里不會(huì)寫(xiě),程序中用到了會(huì)提。
編輯器太不給力了,每次發(fā)布完看的時(shí)候都有一部分代碼顯示不出來(lái),還得改一遍...
最后附上本次生成的apk文件,不能傳,改成了zip擴(kuò)展名,Textview_EditText_Button.zip
轉(zhuǎn)載于:https://www.cnblogs.com/tianyi-yyj/archive/2012/02/19/2358275.html
總結(jié)
以上是生活随笔為你收集整理的Android开发三:常用控件1--TextView、EditText、Button的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: iOS开发笔记[18/50]:在Mac
- 下一篇: 求各位大神指路~