Android开发从入门到精通(8) _8
?
RadioGroup?第八章(8)
在本章中将为RadioGroup?View创建一个活动。创建活动的步骤和前节一致。因此会为你提供三个主要文件—AndroidManifest.xml,radiogroup.xml,和?testRadioGroup.java。这些文件将在下面提供给你。
AndroidManifest.xml?
这个部分包含当前AndroidView?AndroidManifest.xml的完整代码。如果你使用Eclipse,修改活动的AndnroidManifest.xml文件如下:
<?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>? <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> |
radiogroup.xml?
这个部分展示了完整的radiogroup.xml文件的完整代码。使用本章前节描述的方法,在项目中创建一个名为radiogroup.xml的文件。
<?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"? 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> |
testRadioGroup.java?
本部分包含执行RadioGroup活动最后所需的文件。在项目中创建一个名为testRadioGroup.java的文件。这是个活动的主要文件并且包含可执行的代码。在testRadioGroup.java文件中使用下面的代码来完成文件。
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)? 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);? }? } |
AndroidViews.java?
最后创建活动的部分是编辑AndroidViews.java。如果你要从主要活动中呼叫testRadioGroup活动,你必须在AndroidViews.java文件中增加代码。与你当前AndroidViews.java文件中的代码相比较,增加所需的代码来完成文件。
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");? 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);? }? public?void?showRadioGroup(){? Intent?radiogroup?=?new?Intent(this,?testRadioGroup.class);? startActivity(radiogroup);? }? public?void?showSpinner(){? }? } |
启动应用程序并从菜单中选择RadioGroup选项。
试着点击Set?isEnabled和Change?BackGroud?Color按钮。注意Set?isEnabled按钮把RadioGroup设为不可用,而Change?Backgroud?Color按钮改变组的背景色。
更多信息请查看?http://www.javady.com/index.php/category/thread