在本章中将为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