需求:
选中下拉列表中的选项,textview中显示对应字符串
点击“添加”按钮,将字符串添加到下拉列表中
点击“删除”按钮,将选中字符串从下拉列表中删除
效果图:
代码:
private static final String[] countriesStr={"beijing" ,"shanghai","tianjing"};
protected static final Object NULL = null;
private TextView myTextView;
private EditText myEditText;
private Button myButton_add;
private Button myButton_del;
private Spinner mySpinner;
private ArrayAdapter<String> adapter;
private List<String> allcountries;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/*把字符串添加到list列表中*/
allcountries = new ArrayList<String>();
for(int i = 0; i < countriesStr.length;i++)
{
allcountries.add(countriesStr[i]);
}
/*将allcountries传入给adapter*/
adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, allcountries);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
myTextView = (TextView)findViewById(R.id.textView2);
myEditText = (EditText)findViewById(R.id.editText1);
myButton_add = (Button)findViewById(R.id.button1);
myButton_del = (Button)findViewById(R.id.button2);
mySpinner = (Spinner)findViewById(R.id.spinner1);
/*将adapter传给spinner*/
mySpinner.setAdapter(adapter);
myButton_add.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
String newCountry = myEditText.getText().toString();
for(int i = 0; i < adapter.getCount(); i++)
{
if(newCountry.equals(adapter.getItem(i)))
{
return;
}
}
if(!newCountry.equals(""))
{
adapter.add(newCountry);
int position = adapter.getPosition(newCountry);
mySpinner.setSelection(position);
myEditText.setText("");
}
}
});
myButton_del.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
if(mySpinner.getSelectedItem()!= NULL)
{
adapter.remove(mySpinner.getSelectedItem().toString());
myEditText.setText("");
if(adapter.getCount() == 0)
{
myTextView.setText("");
}
}
}
});
mySpinner.setOnItemSelectedListener(
new Spinner.OnItemSelectedListener()
{
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
// TODO Auto-generated method stub
myTextView.setText(arg0.getSelectedItem().toString());
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
重点:
在下拉列表中删除和添加的动作,其实是在adapter中实现的,spinner随时显示adapter中的信息
数据的传输过程:String->ArrayList->ArrayAdapter->spinner