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"?> <manifestxmlns:android=http://schemas.android.com/apk/res/android package="android_programmers_guide.AndroidViews"> <applicationandroid:icon="@drawable/icon"> <activityandroid:name=".AndroidViews" android:label="@string/app_name"> <intent-filter> <actionandroid:name="android.intent.action.MAIN"/> <categoryandroid:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> <activityandroid:name=".AutoComplete"android:label="AutoComplete"> <intent-filter> <actionandroid:name="android.intent.action.MAIN"/> <categoryandroid:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> <activityandroid:name=".testButton"android:label="TestButton"> <intent-filter> <actionandroid:name="android.intent.action.MAIN"/> <categoryandroid:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> <activityandroid:name=".testCheckBox"android:label="TestCheckBox"> <intent-filter> <actionandroid:name="android.intent.action.MAIN"/> <categoryandroid:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> <activityandroid:name=".testEditText"android:label="TestEditText"> <intent-filter> <actionandroid:name="android.intent.action.MAIN"/> <categoryandroid:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> <activityandroid:name=".testRadioGroup"android:label="Test RadioGroup"> <intent-filter> <actionandroid:name="android.intent.action.MAIN"/> <categoryandroid:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> </application> </manifest> |
radiogroup.xml 这个部分展示了完整的radiogroup.xml文件的完整代码。使用本章前节描述的方法,在项目中创建一个名为radiogroup.xml的文件。
<?xml version="1.0" encoding="utf-8"?> <LinearLayoutxmlns:android=http://schemas.android.com/apk/res/android Chapter8:Lists,Menus,andOtherViews191 android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <RadioGroupandroid:id="@+id/testRadioGroup" android:layout_width="fill_parent" android:layout_height="wrap_content"> <RadioButton android:text="Radio1" android:id="@+id/radio1" /> <RadioButton android:text="Radio2" android:id="@+id/radio2"/> </RadioGroup> <Buttonandroid:id="@+id/enableButton" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="SetisEnabled"/> <Buttonandroid:id="@+id/backgroundColorButton" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="ChangeBackgroundColor"/> </LinearLayout> |
testRadioGroup.java 本部分包含执行RadioGroup活动最后所需的文件。在项目中创建一个名为testRadioGroup.java的文件。这是个活动的主要文件并且包含可执行的代码。在testRadioGroup.java文件中使用下面的代码来完成文件。
package android_programmers_guide.AndroidViews; importandroid.app.Activity; importandroid.os.Bundle; importandroid.view.View; importandroid.widget.RadioGroup; importandroid.widget.Button; importandroid.graphics.Color; publicclasstestRadioGroupextendsActivity{ @Override publicvoidonCreate(Bundleicicle){ super.onCreate(icicle); setContentView(R.layout.radiogroup); finalRadioGroupradiogroup=(RadioGroup) findViewById(R.id.testRadioGroup); finalButtonchangeButton=(Button)findViewById(R.id.enableButton); changeButton.setOnClickListener(newButton.OnClickListener(){ publicvoidonClick(Viewv){ changeOption(radiogroup);} }); finalButtonchangeButton2=(Button) findViewById(R.id.backgroundColorButton); changeButton2.setOnClickListener(newButton.OnClickListener(){ publicvoidonClick(Viewv){ changeOption2(radiogroup); } }); } publicvoidchangeOption(RadioGroupradiogroup){ if(radiogroup.isEnabled()){ radiogroup.setEnabled(false); } else{ radiogroup.setEnabled(true); }} publicvoidchangeOption2(RadioGroupradiogroup){ radiogroup.setBackgroundColor(Color.RED); } } |
AndroidViews.java
最后创建活动的部分是编辑AndroidViews.java。如果你要从主要活动中呼叫testRadioGroup活动,你必须在AndroidViews.java文件中增加代码。与你当前AndroidViews.java文件中的代码相比较,增加所需的代码来完成文件。package android_programmers_guide.AndroidViews; importandroid.app.Activity; importandroid.os.Bundle; importandroid.view.Menu; importandroid.content.Intent; publicclassAndroidViewsextendsActivity{ /**CalledwhentheActivityisfirstcreated.*/ @Override publicvoidonCreate(Bundleicicle){ super.onCreate(icicle); setContentView(R.layout.main); } @Override publicbooleanonCreateOptionsMenu(Menumenu){ 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"); returntrue; } @Override publicbooleanonOptionsItemSelected(Menu.Itemitem){ switch(item.getId()){ case0: showAutoComplete(); returntrue; case1: showButton(); returntrue; case2: showCheckBox(); returntrue; case3: showEditText(); returntrue; case4: showRadioGroup(); returntrue; case5: showSpinner(); returntrue; } returntrue; } publicvoidshowButton(){ IntentshowButton=newIntent(this,testButton.class); startActivity(showButton); Chapter8:Lists,Menus,andOtherViews193 194Android:AProgrammer’sGuide } publicvoidshowAutoComplete(){ Intentautocomplete=newIntent(this,AutoComplete.class); startActivity(autocomplete); } publicvoidshowCheckBox(){ Intentcheckbox=newIntent(this,testCheckBox.class); startActivity(checkbox); } publicvoidshowEditText(){ Intentedittext=newIntent(this,testEditText.class); startActivity(edittext); } publicvoidshowRadioGroup(){ Intentradiogroup=newIntent(this,testRadioGroup.class); startActivity(radiogroup); } publicvoidshowSpinner(){ } } |
启动应用程序并从菜单中选择RadioGroup选项。
试着点击Set isEnabled和Change BackGroud Color按钮。注意Set isEnabled按钮把RadioGroup设为不可用,而Change Backgroud Color按钮改变组的背景色。