main.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" > <TextView android:id="@+id/textView" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> <EditText android:id="@+id/editText" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="add" ></EditText> <Button android:id="@+id/addButton" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="add" ></Button> <Button android:id="@+id/removeButton" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="remove" ></Button> <Spinner android:id="@+id/spinner" android:layout_width="fill_parent" android:layout_height="wrap_content" ></Spinner> </LinearLayout>
Spinner2Activity.java
package com.itxinke.www; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.EditText; import android.widget.Spinner; import android.widget.TextView; public class Spinner2Activity extends Activity { /** Called when the activity is first created. */ private static final String TAG = "Spinner "; private TextView textView; private EditText editText; private Spinner spinner; private Button addButton,removeButton; private ArrayAdapter<String> arrayAdapter; private List<String> allCountries; private static final String[] countries= { "Beijing","ShangHai","HangZhou","GuangZhou" }; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); textView = (TextView)findViewById(R.id.textView); editText = (EditText)findViewById(R.id.editText); spinner = (Spinner)findViewById(R.id.spinner); addButton = (Button)findViewById(R.id.addButton); removeButton = (Button)findViewById(R.id.removeButton); allCountries = new ArrayList<String>(); for(int i = 0;i < countries.length;i++) { allCountries.add(countries[i]); } arrayAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item); arrayAdapter.add(countries[0]); arrayAdapter.add(countries[1]); arrayAdapter.add(countries[2]); arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spinner.setAdapter(arrayAdapter); addButton.setOnClickListener(new ButtonListener()); removeButton.setOnClickListener(new ButtonListener()); spinner.setOnItemSelectedListener(new Spinner.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) { // TODO Auto-generated method stub } @Override public void onNothingSelected(AdapterView<?> arg0) { // TODO Auto-generated method stub } }); } private class ButtonListener implements Button.OnClickListener { @Override public void onClick(View arg0) { // TODO Auto-generated method stub if(addButton == (Button)arg0) { String newCountry = editText.getText().toString(); System.out.println(TAG + "you pressed addButton" + newCountry); arrayAdapter.add(newCountry); System.out.println(TAG + "arrayAdapter.add sucess"); int position = arrayAdapter.getPosition(newCountry); spinner.setSelection(position); } else if(removeButton == (Button)arg0) { System.out.println(TAG + "" + spinner.getSelectedItem().toString()); arrayAdapter.remove(spinner.getSelectedItem().toString()); textView.setText(""); } } } }
arrayAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item);
还有另外一种写法
arrayAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,allCountries);
后面就省略了一串的add操作。
但是在我的机器上当我点击addButton 或者 removeButton的时候就会抛出异常。add和remove函数的异常。希望有知道怎么回事的童鞋告诉我一声怎么回事!