- 首先介紹幾個常用的控件:
1.文本類控件
TextView 負責展示文本,非編輯
EditText 可編輯文本控件
2.按鈕類控件
Button 按鈕
ImageButton 圖片按鈕
RadioButton與RadioGroup 單選按鈕
CheckBox 複選按鈕
3.圖片控件
ImageView 負責顯示圖片
4.進度條控件
ProgressBar 進度條 設置控件的屬性有兩種方法,一種是在佈局文件中設置參數,另一種是在代碼中調用對應方法實現。
以上的這些控件都有以下的四個屬性:
android:id = "@+id/xxxx" @+id/xxx表示新增控件命名爲xxxx
android:layout_width = "xxxx"
android:layout_height = "xxxx"
//下面這個屬性默認可以省略
android:visibility = "visible"
其中layout_width以及layout_height屬性可選值有兩種 match_parent和wrap_conten
match_parent表示讓當前控件的大小和父佈局的大小一樣,也就是由父佈局來決定當前控件的大小;
wrap_content表示讓當前控件的大小能夠剛好包含住裏面的內容,也就是由控件內容決定當前控件的大小。
android:visibility表示控件的可見屬性,所有的Android控件都具有這個屬性,可以通過 android:visibility 進行指定,可選值有三種,visible、invisible 和 gone。visible 表示控件是可見的,這個值是 默認值,不指定 android:visibility 時,控件都是可見的。invisible 表示控件不可見,但是它仍 然佔據着原來的位置和大小,可以理解成控件變成透明狀態了。gone 則表示控件不僅不可見, 而且不再佔用任何屏幕空間。一般用在Activity中通過setVisibility方法來指定呈現與否。
- 下面我們來實現一個小程序:
實現註冊窗口,在Log裏獲取註冊信息
(1)activity_regist.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"
android:padding="10dp">
<TableLayout
android:id="@+id/TableLayout01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:stretchColumns="1">
<TableRow
android:id="@+id/TableRow01"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:id="@+id/TextView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="用戶名稱">
</TextView>
<EditText
android:id="@+id/username"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="">
</EditText>
</TableRow>
<TableRow
android:id="@+id/TableRow02"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:id="@+id/TextView02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="用戶密碼">
</TextView>
<EditText
android:id="@+id/password"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:password="true"
android:text="">
</EditText>
</TableRow>
<TableRow
android:id="@+id/TableRow03"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:id="@+id/TextView03"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="性別">
</TextView>
<RadioGroup
android:id="@+id/gender_g"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<RadioButton
android:id="@+id/male"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="男">
</RadioButton>
<RadioButton
android:id="@+id/female"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="女">
</RadioButton>
</RadioGroup>
</TableRow>
<TableRow
android:id="@+id/TableRow04"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:id="@+id/TextView04"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="婚否">
</TextView>
<ToggleButton
android:id="@+id/marriged"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@+id/ToggleButton01">
</ToggleButton>
</TableRow>
<TableRow
android:id="@+id/TableRow05"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:id="@+id/hobby"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="愛好">
</TextView>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="1">
<CheckBox
android:id="@+id/reading"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="閱讀" />
<CheckBox
android:id="@+id/swimming"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="游泳" />
</LinearLayout>
</TableRow>
<TableRow
android:id="@+id/TableRowo6"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:id="@+id/TextView05"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="職務">
</TextView>
<Spinner
android:id="@+id/position"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</Spinner>
</TableRow>
<TableRow
android:id="@+id/TableRow07"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<Button
android:id="@+id/cancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="取消">
</Button>
<Button
android:id="@+id/register"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="註冊">
</Button>
</TableRow>
</TableLayout>
</LinearLayout>
(2)RegistActivity.java文件:
package com.example.logregist;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.RadioButton;
import android.widget.Spinner;
import android.widget.ToggleButton;
import android.widget.EditText;
import android.view.View.OnClickListener;
public class RegistActivity extends Activity {
//聲明組件
private Button register,cancel;
private ToggleButton marriged;
private RadioButton male,female;
private EditText username,password;
private Spinner position;
private CheckBox reading,swimming;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_regist);
//根據Id獲取組件對象
username=(EditText)findViewById(R.id.username);
password=(EditText)findViewById(R.id.password);
male=(RadioButton)findViewById(R.id.male);
female=(RadioButton)findViewById(R.id.female);
reading=(CheckBox)findViewById(R.id.reading);
swimming=(CheckBox)findViewById(R.id.swimming);
marriged=(ToggleButton)findViewById(R.id.marriged);
position=(Spinner)findViewById(R.id.position);
//創建一個下拉列表選項數組
String[]strs={"CEO","PM","pl"};
//創建一個數組適配器
ArrayAdapter aa=new ArrayAdapter(this,android.R.layout.simple_spinner_dropdown_item,strs);
//設置下拉列表的適配器
position.setAdapter(aa);
register=(Button)findViewById(R.id.register);
cancel=(Button)findViewById(R.id.cancel);
//註冊監聽
register.setOnClickListener(new OnClickListener(){
public void onClick(View v){
Log.i("tag","username:"+username.getText().toString());
Log.i("tag","password:"+password.getText().toString());
if(male.isChecked()){
Log.i("tag","sex:male");
}
else{
Log.i("tag","sex:female");
}
String temp="like";
if(reading.isChecked()){
temp +="read";
}
if(swimming.isChecked()){
temp +="swim";
}
Log.i("tag", temp);
if(marriged.isChecked()){
Log.i("tag", "marriged:Yes");
}
else{
Log.i("tag", "marriged:No");
}
Log.i("tag", "position:"+position.getSelectedItem().toString());
}
});
}
}
(3)實驗結果如下: