本章节翻译自《Beginning-Android-4-Application-Development》,如有翻译不当的地方,敬请指出。
原书购买地址http://www.amazon.com/Beginning-Android-4-Application-Development/dp/1118199545/除了最常用的TextView,Android还提供了一些其他的基本控件。
- Button
- ImageButton
- EditText
- CheckBox
- RadioGroup和RadioButton
- ToggleButton
下面的例子,展示如何使用这些基本控件。
1. 创建一个工程:BasicViews。
2. main.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" >
- <Button android:id="@+id/btnSave"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="@string/save"
- android:onClick="btnSaved_clicked"/>
- <Button android:id="@+id/btnOpen"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="Open" />
- <ImageButton android:id="@+id/btnImg1"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:src="@drawable/ic_launcher" />
- <EditText android:id="@+id/txtName"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content" />
- <CheckBox android:id="@+id/chkAutosave"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="Autosave" />
- <CheckBox android:id="@+id/star"
- style="?android:attr/starStyle"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
- <RadioGroup android:id="@+id/rdbGp1"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:orientation="vertical" >
- <RadioButton android:id="@+id/rdb1"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="Option 1" />
- <RadioButton android:id="@+id/rdb2"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="Option 2" />
- </RadioGroup>
- <ToggleButton android:id="@+id/toggle1"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
- </LinearLayout>
4. 点击不同的控件,观察不同的效果。
5. 对事件进行处理。
- public class BasicViews1Activity extends Activity {
- public void btnSaved_clicked (View view) {
- DisplayToast("You have clicked the Save button1");
- }
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- //---Button view---
- Button btnOpen = (Button) findViewById(R.id.btnOpen);
- btnOpen.setOnClickListener(new View.OnClickListener() {
- public void onClick(View v) {
- DisplayToast("You have clicked the Open button");
- }
- });
- /*
- //---Button view---
- Button btnSave = (Button) findViewById(R.id.btnSave);
- btnSave.setOnClickListener(new View.OnClickListener()
- {
- public void onClick(View v) {
- DisplayToast("You have clicked the Save button");
- }
- });
- */
- //---CheckBox---
- CheckBox checkBox = (CheckBox) findViewById(R.id.chkAutosave);
- checkBox.setOnClickListener(new View.OnClickListener()
- {
- public void onClick(View v) {
- if (((CheckBox)v).isChecked())
- DisplayToast("CheckBox is checked");
- else
- DisplayToast("CheckBox is unchecked");
- }
- });
- //---RadioButton---
- RadioGroup radioGroup = (RadioGroup) findViewById(R.id.rdbGp1);
- radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener()
- {
- public void onCheckedChanged(RadioGroup group, int checkedId) {
- RadioButton rb1 = (RadioButton) findViewById(R.id.rdb1);
- if (rb1.isChecked()) {
- DisplayToast("Option 1 checked!");
- } else {
- DisplayToast("Option 2 checked!");
- }
- }
- });
- //---ToggleButton---
- ToggleButton toggleButton =
- (ToggleButton) findViewById(R.id.toggle1);
- toggleButton.setOnClickListener(new View.OnClickListener()
- {
- public void onClick(View v) {
- if (((ToggleButton)v).isChecked())
- DisplayToast("Toggle button is On");
- else
- DisplayToast("Toggle button is Off");
- }
- });
- }
- private void DisplayToast(String msg)
- {
- Toast.makeText(getBaseContext(), msg,
- Toast.LENGTH_SHORT).show();
- }
- }