Android开发从入门到精通(8) _9

缘来如此 2012-04-24

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"?> 

<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>

<activityandroid:name=".testSpinner"android:label="TestSpinner">

<intent-filter>

<actionandroid:name="android.intent.action.MAIN"/>

<categoryandroid:name="android.intent.category.LAUNCHER"/>

</intent-filter>

</activity>

</application>

</manifest>

spinner.xml

本节展示了spinner.xml文件的完整代码。在项目中创建一个名为spinner.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"

>

<Spinnerandroid:id="@+id/testSpinner"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

/>

<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>

testSpinner.java

本节包含了执行Spinner活动所需要的最后一个文件。在项目中创建一个名为testSpinner.java的新文件。这是个活动的主要文件并且包含可执行代码。在testSpinner.java文件中使用下面的代码来完成这个活动。

package android_programmers_guide.AndroidViews; 

importandroid.app.Activity;

importandroid.os.Bundle;

importandroid.view.View;

importandroid.widget.ArrayAdapter;

importandroid.widget.Spinner;

importandroid.widget.Button;

importandroid.graphics.Color;

198Android:AProgrammer’sGuide

publicclasstestSpinnerextendsActivity{

@Override

publicvoidonCreate(Bundleicicle){

super.onCreate(icicle);

setContentView(R.layout.spinner);

finalSpinnerspinner=(Spinner)findViewById(R.id.testSpinner);

ArrayAdapter<String>adapter=newArrayAdapter<String>(this,

android.R.layout.simple_spinner_item,Months);

adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

spinner.setAdapter(adapter);

finalButtonchangeButton=(Button)findViewById(R.id.enableButton);

changeButton.setOnClickListener(newButton.OnClickListener(){

publicvoidonClick(Viewv){

changeOption(spinner);}

});

finalButtonchangeButton2=(Button)

findViewById(R.id.backgroundColorButton);

changeButton2.setOnClickListener(newButton.OnClickListener(){

publicvoidonClick(Viewv){

changeOption2(spinner);

}

});

}

staticfinalString[]Months=newString[]{

"January","February","March","April","May","June","July","August",

"September","October","November","December"

};

publicvoidchangeOption(Spinnerspinner){

if(spinner.isEnabled()){

spinner.setEnabled(false);

}

else{

spinner.setEnabled(true);

}

}

publicvoidchangeOption2(Spinnerspinner){

spinner.setBackgroundColor(Color.RED);

}

}

AndroidViews.java

创建活动的最后一个步骤就是编辑AndroidViews.java。如果你要从主活动AndroidViews中呼叫testSpinner活动,你必须增加代码到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);

}

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(){

Intentspinner=newIntent(this,testSpinner.class);

startActivity(spinner);

}

启动应用程序并从菜单中选择Spinner选项。试着点击Set isEnabled和Change Backgroud Color按钮。

更多信息请查看 http://www.javady.com/index.php/category/thread

相关推荐