android sdk---spinner添加删除实例

来源:互联网 发布:91kge网络在线ktv 编辑:程序博客网 时间:2024/06/05 09:19

需求:

选中下拉列表中的选项,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

0 0
原创粉丝点击