一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

Android Spinner 组件的应用实例

时间:2022-06-25 23:21:16 编辑:袖梨 来源:一聚教程网

Android Spinner 组件

Spinner: 下拉组件

使用事项:布局在XML 中实现,具体的数据在JAVA 代码中实现;

所用知识点:

数组适配器:ArrayAdapter  用于关系M 层和 C 层;

事件:OnItemSelectedListener;

案列:查看十二星座效果图:

xml:代码如下:

   
  
  
  
    
  
      
  
      
    
  
  

java代码如下:

  packagecom.example.spinnertest;
  
importjava.util.ArrayList;
  
importandroid.app.Activity;
importandroid.content.res.Resources;
importandroid.os.Bundle;
importandroid.view.View;
importandroid.widget.AdapterView;
importandroid.widget.AdapterView.OnItemSelectedListener;
importandroid.widget.ArrayAdapter;
importandroid.widget.Spinner;
importandroid.widget.TextView;
  
publicclassMainActivityextendsActivity {
  
  privateSpinner spinner;
  privateTextView tx;
  privateArrayList list =null;
  protectedvoidonCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
  
    /* 获取TextView 实体对象 , 用于显示星座的详细信息 */
    tx = (TextView) findViewById(R.id.showInfo);
  
    /* 下拉组件测试 Spinner 对象首先获取 */
    spinner = (Spinner) findViewById(R.id.spinner);
  
    /* 准备数据源 M , 用集合进行保存 */
    list = new ArrayList(); 
    list.add("Aries");
    list.add("Taurus");
    list.add("Gemini");
    list.add("Cancer");
    list.add("Leo");
    list.add("Virgo");
    list.add("Libra");
    list.add("Scorpio");
    list.add("Sagittarius");
    list.add("Capricorn");
    list.add("Aquarius");
    list.add("Pisces");
  
  
    /* 实现M 层 与C 层的关系 ,绑定数据 */ /* 参数1:上下文对象; 参数2:系统资源布局方式 ; 参数3:数据对象 */
    ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_spinner_dropdown_item, list);
  
    /* 对V 层和C 层进行关系的绑定; */
    spinner.setAdapter(adapter);
  
    spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
  
      /* 对所有的选择项进行监控 *//* 参3:当前选择项的ID 参4:被选择项在组中的位置,逻辑上与ID 相等,但代表的意义不一样 */
      public void onItemSelected(AdapterView arg0, View arg1,
          int id, long position) {
        // Toast.makeText(MainActivity.this, "你选择的是第:"+id+"值为:"+list.get(id), 1000).show();
          
        /* 设置tx对象的值 */
        String temp = getConstellation(id);
        tx.setText("t"+temp);
  
      }
  
      @Override
      public void onNothingSelected(AdapterView arg0) {
        // TODO Auto-generated method stub
  
      }
    });
  
  
  }
  
  /* 显示星座的信息 */
  protectedString getConstellation(intid){
    Resources rs = getResources();
    String temp ="";
    switch(id){
    case0:
      temp = rs.getString(R.string.Aries);
      break;
    case1:
      temp = rs.getString(R.string.Taurus);
      break;
    case2:
      temp = rs.getString(R.string.Gemini);
      break;
    case3:
      temp = rs.getString(R.string.Cancer);
      break;
    case4:
      temp = rs.getString(R.string.Leo);
      break;
    case5:
      temp = rs.getString(R.string.Virgo);
      break;
    case6:
      temp = rs.getString(R.string.Libra);
      break;
    case7:
      temp = rs.getString(R.string.Scorpio);
      break;
    case8:
      temp = rs.getString(R.string.Sagittarius);
      break;
    case9:
      temp = rs.getString(R.string.Capricorn);
      break;
    case10:
      temp = rs.getString(R.string.Aquarius);
      break;
    case11:
      temp = rs.getString(R.string.Pisces);
      break;
    case12:
      temp = rs.getString(R.string.Aries);
      break;
    }
    returntemp;
  }
  
  
}

热门栏目