Android开发从入门到精通(8) _9
?
Spinner?第八章(9)
在本节中将为Spinner?View创建一个活动。Spinner?View和其它编程语言里的ComboBox相类似。创建这个活动的步骤和前面部分的一样。因此,还是会提供给你三个主要活动的代码文件—AndroidManifest.xml,?spinner.xml,?
和?testSpinner.java。下面就是这些提供的文件。
AndroidManifest.xml
本节包含当前AndroidViews的AndroidManifest.xml文件的完整代码。如果你使用Eclipse,修改活动的AndroidManifest.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>? <activity?android:name=".testSpinner"?android:label="Test?Spinner">? <intent-filter>? <action?android:name="android.intent.action.MAIN"?/>? <category?android:name="android.intent.category.LAUNCHER"?/>? </intent-filter>? </activity>? </application>? </manifest> |
spinner.xml
本节展示了spinner.xml文件的完整代码。在项目中创建一个名为spinner.xml的文件。使用下面的代码修改你的文件。
<?xml?version="1.0"?encoding="utf-8"?>? <LinearLayout?xmlns:android=http://schemas.android.com/apk/res/android? android:orientation="vertical"? android:layout_width="fill_parent"? android:layout_height="fill_parent"? >? <Spinner?android:id="@+id/testSpinner"? android:layout_width="fill_parent"? android:layout_height="wrap_content"? />? <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> |
testSpinner.java
本节包含了执行Spinner活动所需要的最后一个文件。在项目中创建一个名为testSpinner.java的新文件。这是个活动的主要文件并且包含可执行代码。在testSpinner.java文件中使用下面的代码来完成这个活动。
package?android_programmers_guide.AndroidViews;? import?android.app.Activity;? import?android.os.Bundle;? import?android.view.View;? import?android.widget.ArrayAdapter;? import?android.widget.Spinner;? import?android.widget.Button;? import?android.graphics.Color;? 198?Android:?A?Programmer’s?Guide? public?class?testSpinner?extends?Activity?{? @Override? public?void?onCreate(Bundle?icicle)?{? super.onCreate(icicle);? setContentView(R.layout.spinner);? final?Spinner?spinner?=?(Spinner)?findViewById(R.id.testSpinner);? ArrayAdapter<String>?adapter?=?new?ArrayAdapter<String>(this,? android.R.layout.simple_spinner_item,?Months);? adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);? spinner.setAdapter(adapter);? final?Button?changeButton?=?(Button)findViewById(R.id.enableButton);? changeButton.setOnClickListener(new?Button.OnClickListener()?{? public?void?onClick(View?v){? changeOption(spinner);?}? });? final?Button?changeButton2?=?(Button)? findViewById(R.id.backgroundColorButton);? changeButton2.setOnClickListener(new?Button.OnClickListener()?{? public?void?onClick(View?v){? changeOption2(spinner);? }? });? }? static?final?String[]?Months?=?new?String[]{? "January","February","March","April","May","June","July","August",? "September","October","November","December"? };? public?void?changeOption(Spinner?spinner){? if?(spinner.isEnabled()){? spinner.setEnabled(false);? }? else{? spinner.setEnabled(true);? }? }? public?void?changeOption2(Spinner?spinner){? spinner.setBackgroundColor(Color.RED);? }? } |
AndroidViews.java
创建活动的最后一个步骤就是编辑AndroidViews.java。如果你要从主活动AndroidViews中呼叫testSpinner活动,你必须增加代码到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);? }? 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(){? Intent?spinner?=?new?Intent(this,?testSpinner.class);? startActivity(spinner);? }? }? |
启动应用程序并从菜单中选择Spinner选项。试着点击Set?isEnabled和Change?Backgroud?Color按钮。
更多信息请查看?http://www.javady.com/index.php/category/thread