RadioGroup
在本章中将为 RadioGroup View 创建一个活动。创建活动的步骤和前节一致。因
此会 为你 提 供三 个 主要 文 件 —AndroidManifest.xml , radiogroup.xml ,和
testRadioGroup.java。这些文件将在下面提供给你。
AndroidManifest.xml
这个部分包含当前 AndroidView AndroidManifest.xml 的完整代码。如果你使用
Eclipse,修改活动的 AndnroidManifest.xml 文件如下:
startActivity(showButton);
}
public void showAutoComplete(){
Intent autocomplete = new Intent(this, AutoComplete.class);
Chapter 8: Lists, Menus, and Other Views 187
startActivity(autocomplete);
}
public void showCheckBox(){
Intent checkbox = new Intent(this, testCheckBox.class);
startActivity(checkbox);
}
public void showEditText() {
Intent edittext = new Intent(this, testEditText.class);
startActivity(edittext);
}
}
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android=http://schemas.android.com/apk/res/android
package="android_programmers_guide.AndroidViews">
<application android:icon="@drawable/icon">
<activity android:name=".AndroidViews"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".AutoComplete" android:label="AutoComplete">
<intent-filter>103
radiogroup.xml
这个部分展示了完整的 radiogroup.xml 文件的完整代码。使用本章前节描述的
方法,在项目中创建一个名为 radiogroup.xml 的文件。
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity android:name=".testButton" android:label="TestButton">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity android:name=".testCheckBox" android:label="TestCheckBox">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity android:name=".testEditText" android:label="TestEditText">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity android:name=".testRadioGroup" android:label="Test
RadioGroup">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application>
</manifest>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android=http://schemas.android.com/apk/res/android
Chapter 8: Lists, Menus, and Other Views 191
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<RadioGroup android:id="@+id/testRadioGroup"104
testRadioGroup.java
本部分包含执行 RadioGroup 活动最后所需的文件。在项目中创建一个名为
testRadioGroup.java 的文件。这是个活动的主要文件并且包含可执行的代码。
在 testRadioGroup.java 文件中使用下面的代码来完成文件。
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<RadioButton
android:text="Radio 1"
android:id="@+id/radio1"
/>
<RadioButton
android:text="Radio 2"
android:id="@+id/radio2" />
</RadioGroup>
<Button android:id="@+id/enableButton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Set isEnabled"/>
<Button android:id="@+id/backgroundColorButton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Change Background Color"/>
</LinearLayout>
package android_programmers_guide.AndroidViews;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.RadioGroup;
import android.widget.Button;
import android.graphics.Color;
public class testRadioGroup extends Activity {
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.radiogroup);
final RadioGroup radiogroup = (RadioGroup)
findViewById(R.id.testRadioGroup);
final Button changeButton = (Button)findViewById(R.id.enableButton);
changeButton.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v){
changeOption(radiogroup); }
});
final Button changeButton2 = (Button)105
AndroidViews.java
最后创建活动的部分是编辑 AndroidViews.java。如果你要从主要活动中呼叫
testRadioGroup 活动,你必须在 AndroidViews.java 文件中增加代码。与你当
前 AndroidViews.java 文件中的代码相比较,增加所需的代码来完成文件。
findViewById(R.id.backgroundColorButton);
changeButton2.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v){
changeOption2(radiogroup);
}
});
}
public void changeOption(RadioGroup radiogroup){
if (radiogroup.isEnabled()){
radiogroup.setEnabled(false);
}
else{
radiogroup.setEnabled(true);
} }
public void changeOption2(RadioGroup radiogroup){
radiogroup.setBackgroundColor(Color.RED);
}
}
package android_programmers_guide.AndroidViews;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.content.Intent;
public class AndroidViews extends Activity {
/** Called when the Activity is first created. */
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
menu.add(0, 0, "AutoComplete");
menu.add(0, 1, "Button");
menu.add(0, 2, "CheckBox");
menu.add(0, 3, "EditText");
menu.add(0, 4, "RadioGroup");106
menu.add(0, 5, "Spinner");
return true;
}
@Override
public boolean onOptionsItemSelected(Menu.Item item){
switch (item.getId()) {
case 0:
showAutoComplete();
return true;
case 1:
showButton();
return true;
case 2:
showCheckBox();
return true;
case 3:
showEditText();
return true;
case 4:
showRadioGroup();
return true;
case 5:
showSpinner();
return true;
}
return true;
}
public void showButton() {
Intent showButton = new Intent(this, testButton.class);
startActivity(showButton);
Chapter 8: Lists, Menus, and Other Views 193
194 Android: A Programmer’s Guide
}
public void showAutoComplete(){
Intent autocomplete = new Intent(this, AutoComplete.class);
startActivity(autocomplete);
}
public void showCheckBox(){
Intent checkbox = new Intent(this, testCheckBox.class);
startActivity(checkbox);
}
public void showEditText() {
Intent edittext = new Intent(this, testEditText.class);
startActivity(edittext);
启动应用程序并从菜单中选择 RadioGroup 选项。
试着点击 Set isEnabled 和 Change BackGroud Color 按钮。注意 Set isEnabled
按钮把 RadioGroup 设为不可用,而 Change Backgroud Color 按钮改变组的背景
色。