Android开发三:常用控件1--TextView、EditText、Button
上一節寫到android的工程目錄結構,這一節繼續,開始學習控件,中間的跨度挺大,關于Activity和intent的知識我就略過了,原因很簡單,網上的關于那個的資料特別多,而且理論的東西我這都是了解就行,那些東西,在應用的過程中自然會熟練起來,還有就是我也是新手,對于那些東西不敢寫,怕誤人...。
這次寫的控件有三個,TextView、EditText、Button。我以前學過winform,很簡單就能找到對應的空間,TextView就是一個lable標簽,用于顯示不可編輯的文字。EditText是一個文本框,用于獲取用戶輸入的文本信息。Button就是自然一個按鈕了。
通過一個例子來學習三個控件。下面來做一個計算兩個數字和的小程序,三個控件一次學完。
在Eclipse新建一個工程,如圖:
創建好以后,打開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>
?
下面講解這段代碼,這個文件首先是一個xml頭,里面是一個LinearLayout布局控件,這是一個線性布局空間,先不說,以后留著單獨學習。布局空間里面放了兩個EditText控件,用于讓用戶輸入兩個數字。中間是一個TextView控件,控件主要用來顯示文字。最后是一個按鈕控件,點擊計算值。
以上幾個控件都有幾個屬性:
android:id屬性,是控件的id,格式為@+id/someid,這樣在程序的R.java文件里面就能自動生成控件的id值的索引,在程序中就可以用R.id.someid取得控件。
android:layout_width和android:layout_height屬性,分別是空間的寬和高,通常值為 fill_parent或者wrap_content,當然也可以用數值。
android:text屬性是控件上面顯示的文本,值可以直接寫,但是不建議,一般是在res目錄下的string.xml里面定義,在代碼里用@string/str來調用,或者在后臺代碼利用R.sting.str來使用。
android:inputType 我在兩個EditText中都加入了一個inputType屬性,值為number,這個值的意思是只允許輸入數字,因為我們是求兩個數字的和。可以去掉這個屬性前后比較一下。
android:textSize這個屬性就是字體的大小。單位有sp,dp,px等。可以百度一下。
最后的button上面還有一個android:layout_gravity屬性,用這個屬性,我把button設置成了居中顯示。
這個文件就講解到這里,下面來看string.xml里面的內容
?
<?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">計算</string>
<string name="warning">請輸入完整!</string>
<string name="about">關于</string>
<string name="exit">退出</string>
<string name="aboutmessage">天意人間,YYJ</string>
</resources>
下面三個就是我自己加的,第一個是標簽上的文字,第二個是按鈕上面的文字。最后一個在后面的程序里面用來提示。
?
界面部分到此結束,現在有個樣子了,可以運行下看看,如圖
下面來編寫程序實現功能。
下面是編寫好的程序,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();}}});} }?
接著來說這一段代碼,先是定義了三個控件
private EditText num1;private EditText num2;private Button plusbtn;然后通過findViewById取得程序中的兩個文本框和一個按鈕
num1=(EditText)findViewById(R.id.num1);num2=(EditText)findViewById(R.id.num2);plusbtn=(Button)findViewById(R.id.plusbtn);?
findViewById的作用就是通過id的到控件,它的參數就是控件在R.java文件中生成的id索引。感覺類似于javascript中的getElementById…
然后給按鈕綁定點擊事件,這個應該在java中學過,我接觸java不太多,不太清楚。plusbtn.setOnClickListener(),學過java的應該很容易看懂。
最后要說的一點就是后面的那個Toast。這是android中的一個提示,效果如下
,過一段時間后會自己消失,用來顯示信息效果挺好。
最后運行程序,如下圖
點擊計算按鈕后,注意劃紅線部分。
恩,此節到此完成。
至于理論部分,我這里不會寫,程序中用到了會提。
編輯器太不給力了,每次發布完看的時候都有一部分代碼顯示不出來,還得改一遍...
最后附上本次生成的apk文件,不能傳,改成了zip擴展名,Textview_EditText_Button.zip
轉載于:https://www.cnblogs.com/tianyi-yyj/archive/2012/02/19/2358275.html
總結
以上是生活随笔為你收集整理的Android开发三:常用控件1--TextView、EditText、Button的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iOS开发笔记[18/50]:在Mac
- 下一篇: Android之GridView(九宫图