qjbagu 2012-04-24
在本节中,将为CheckBox View创建一个活动。创建活动的步骤和前面的章节一致。因此,将会为你提供三个主要活动文件——AndroidManifest.xml, checkbox.xml, 和 testCheckBox.java。这些文件在下面的部分提供。
AndroidManifest.xml
这个部分包含当前AndroidView的完整代码。如果你使用Eclipse,修改你活动的AndroidManifest.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> </application> </manifest> |
checkbox.xml
这个部分显示了完整的checkbox.xml代码。使用在本章早些时候提到的方法,在项目中创建一个新的XML文件,把它命名为checkbox.xml。使用下面的代码修改你的文件。
<?xml version="1.0" encoding="utf-8"?> <LinearLayoutxmlns:android=http://schemas.android.com/apk/res/android android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <CheckBoxandroid:id="@+id/testCheckBox" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="ThisisthetestCheckBox"/> <Buttonandroid:id="@+id/layoutButton" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="ChangeLayout"/> <Buttonandroid:id="@+id/textColorButton" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="ChangeTextColor"/> </LinearLayout> |
testCheckBox.java 本部分涵盖了执行Checkbox活动所需的最后新文件。在项目中创建一个新的.java文件,并把它命名为testCheckBox.java。这个是活动的主文件并且包含可执行代码。在testCheckBox.java文件中使用下列代码:
package android_programmers_guide.AndroidViews; importandroid.app.Activity; importandroid.os.Bundle; importandroid.view.View; importandroid.widget.CheckBox; importandroid.widget.Button; importandroid.graphics.Color; publicclasstestCheckBoxextendsActivity{ 180Android:AProgrammer’sGuide @Override publicvoidonCreate(Bundleicicle){ super.onCreate(icicle); setContentView(R.layout.checkbox); finalCheckBoxcheckbox=(CheckBox)findViewById(R.id.testCheckBox); finalButtonchangeButton=(Button)findViewById(R.id.layoutButton); changeButton.setOnClickListener(newButton.OnClickListener(){ publicvoidonClick(Viewv){ changeOption(checkbox);} }); finalButtonchangeButton2=(Button) findViewById(R.id.textColorButton); changeButton2.setOnClickListener(newButton.OnClickListener(){ publicvoidonClick(Viewv){ changeOption2(checkbox); } }); } publicvoidchangeOption(CheckBoxcheckbox){ if(checkbox.getHeight()==100){ checkbox.setHeight(30); } else{ checkbox.setHeight(100); } } publicvoidchangeOption2(CheckBoxcheckbox){ checkbox.setTextColor(Color.RED); } } |
AndroidViews.java 创建这个活动的最后一步就是编辑AndroidViews.java文件。如果你要从AndroidViews主活动中呼叫testCheckBox活动,你必须增加代码到AndroidViews.java中。用下面的代码和你现存在AndroidViews.java中的代码作个比较。
package android_programmers_guide.AndroidViews; importandroid.app.Activity; importandroid.os.Bundle; importandroid.view.Menu; importandroid.content.Intent; Chapter8:Lists,Menus,andOtherViews181 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: returntrue; case4: returntrue; case5: returntrue; } returntrue; } publicvoidshowButton(){ IntentshowButton=newIntent(this,testButton.class); startActivity(showButton); } publicvoidshowAutoComplete(){ Intentautocomplete=newIntent(this,AutoComplete.class); startActivity(autocomplete); } publicvoidshowCheckBox(){ Intentcheckbox=newIntent(this,testCheckBox.class); startActivity(checkbox); } } |
启动应用程序并从菜单中选择CheckBox选项。点击Change Layout和Change Text Color按钮。