首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

2013年三月21日-动态添加_删除的Spinner菜单

2013-03-26 
2013年3月21日----动态添加_删除的Spinner菜单动态添加/删除的Spinner菜单在Android的Spinner里的元素,如

2013年3月21日----动态添加_删除的Spinner菜单

动态添加/删除的Spinner菜单

       在Android的Spinner里的元素,如果想动态的增减下拉菜单的选项,就必须利用ArrayList的依赖性来完成。

       下面的应用程序设计一个EditText供用户输入文字,单击添加按钮会将文字添加进Spinner;单击“删除”按钮则删除所选择的Spinner选项,常应用于未知Spinner选项数量的To-Do List或添加维护市县数据等。下面是示例的源码:

package com.example.test01; import java.util.ArrayList;import java.util.List; import android.app.Activity;import android.os.Bundle;import android.view.Menu;importandroid.view.MotionEvent;import android.view.View;import android.view.View.OnClickListener;importandroid.view.View.OnFocusChangeListener;importandroid.view.View.OnTouchListener;importandroid.view.animation.Animation;importandroid.view.animation.AnimationUtils;importandroid.widget.AdapterView.OnItemSelectedListener;importandroid.widget.AdapterView;importandroid.widget.ArrayAdapter;importandroid.widget.Button;importandroid.widget.EditText;importandroid.widget.Spinner;importandroid.widget.TextView; public class MainActivityextends Activity {        TextView textView01;       EditText editText01;       Button buttonAdd , buttonDelete;       Spinner spinner01;       private static final String[] countriesStr =               {"北京市" , "上海市" , "天津市" , "重庆市"};       private ArrayAdapter<String> adapter;       private ArrayList<String> allCountries;       Animation animation;              @Override       protected void onCreate(Bundle savedInstanceState) {              super.onCreate(savedInstanceState);              setContentView(R.layout.activity_main);               allCountries = new ArrayList<String>();              for (int i = 0; i < countriesStr.length; i++) {                     allCountries.add(countriesStr[i]);              }                            //new ArrayAdapter对象并将allCountries传入              adapter = newArrayAdapter<String>(getApplicationContext(),android.R.layout.simple_spinner_item , allCountries);              adapter.setDropDownViewResource(R.layout.myspinner_dropdown);                            //以findViewById取得对象              textView01 = (TextView)findViewById(R.id.textView01);              editText01 = (EditText)findViewById(R.id.editText);              buttonAdd = (Button)findViewById(R.id.buttonAdd);              buttonDelete = (Button)findViewById(R.id.buttonDelete);              spinner01 = (Spinner)findViewById(R.id.spinner);                            //将ArrayAdapter添加Spinner对象中              spinner01.setAdapter(adapter);              //将buttonAdd添加OnClickListener              buttonAdd.setOnClickListener(new OnClickListener() {                     public voidonClick(View v) {                            String newCountry =editText01.getText().toString();                            //先比较添加的值是否已存在,不存在才可以添加                            for (int i = 0; i <adapter.getCount(); i++) {                                   if(newCountry.equals(adapter.getItem(i))) {                                          return;                                   }                            }                            if (!newCountry.equals("")) {                                   //将值添加到adapter                                   adapter.add(newCountry);                                   //取得添加的值的位置                                   int position =adapter.getPosition(newCountry);                                   //将Spinner选择在添加的值的位置                                   spinner01.setSelection(position);                                   //将EditText清空                                   editText01.setText("");                            }                     }              });                            buttonDelete.setOnClickListener(new OnClickListener() {                     public void onClick(View v) {                            if (spinner01.getSelectedItem() != null){                                   //删除spinner的值                                   adapter.remove(spinner01.getSelectedItem().toString());                                   //将EditText清空                                   editText01.setText("");                                   if (adapter.getCount() == 0) {                                          //将TextView清空                                          textView01.setText("");                                   }                            }                     }              });                            //将spinner添加OnItemSelectedListener              spinner01.setOnItemSelectedListener(newSpinnerSelectListener());                     }              class SpinnerSelectListener implements OnItemSelectedListener       {              public void onItemSelected(AdapterView<?> arg0,View arg1, int arg2,                            long arg3) {                     //将所选spinner的值带入TextView中                     textView01.setText(arg0.getSelectedItem().toString());                                   }               public void onNothingSelected(AdapterView<?>arg0) {}       }                     @Override       public boolean onCreateOptionsMenu(Menu menu) {              // Inflate the menu; this adds items to the action barif it is present.              getMenuInflater().inflate(R.menu.main, menu);              return true;       }} 


 

热点排行