Android開發三:常用控件1--TextView、EditText、Button


上一節寫到android的工程目錄結構,這一節繼續,開始學習控件,中間的跨度挺大,關於Activity和intent的知識我就略過了,原因很簡單,網上的關於那個的資料特別多,而且理論的東西我這都是了解就行,那些東西,在應用的過程中自然會熟練起來,還有就是我也是新手,對於那些東西不敢寫,怕誤人...。

這次寫的控件有三個,TextView、EditText、Button。我以前學過winform,很簡單就能找到對應的空間,TextView就是一個lable標簽,用於顯示不可編輯的文字。EditText是一個文本框,用於獲取用戶輸入的文本信息。Button就是自然一個按鈕了。

通過一個例子來學習三個控件。下面來做一個計算兩個數字和的小程序,三個控件一次學完。

在Eclipse新建一個工程,如圖:

create_pro_Textview_EditText_Button

創建好以后,打開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>



下面三個就是我自己加的,第一個是標簽上的文字,第二個是按鈕上面的文字。最后一個在后面的程序里面用來提示。

 

界面部分到此結束,現在有個樣子了,可以運行下看看,如圖

preview_Textview_edittext_buttom

下面來編寫程序實現功能。

下面是編寫好的程序,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;
    @Override
    public 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 stub
				String 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中的一個提示,效果如下

Toast,過一段時間后會自己消失,用來顯示信息效果挺好。

最后運行程序,如下圖

run_textview_edittext_button

點擊計算按鈕后,注意划紅線部分。

恩,此節到此完成。

至於理論部分,我這里不會寫,程序中用到了會提。

編輯器太不給力了,每次發布完看的時候都有一部分代碼顯示不出來,還得改一遍...

最后附上本次生成的apk文件,不能傳,改成了zip擴展名,Textview_EditText_Button.zip


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM