zoukankan      html  css  js  c++  java
  • spinner和适配器模式

    spinner相当于html表单中的select下拉列表。

    ------------
    |第一种方式|
    ------------
    在string.xml中添加一个数组spinner_data:
    <?xml version="1.0" encoding="utf-8"?>
    <resources>
    <string-array name="spinner_data">
    <item >北京</item>
    <item >湖南</item>
    <item >湖北</item>
    </string-array>
    </resources>

    拖拽一个spinner:
    <Spinner
    android:id="@+id/spinner1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:entries="@array/spinner_data"
    android:spinnerMode="dialog"

    />

    <!-- entries 显示spinner当中的数据项
    spinnerMode="dropdown"是默认值下拉列表,spinnerMode="dialog"是以对话框的形式显示--!>
    ------------
    |第二种方式|
    ------------
    BaseAdapter就Android应用程序中经常用到的基础数据适配器,它的主要用途是将一组数据传到像ListView、Spinner、Gallery、GridView等UI显示组件,它是自动继承接口类Adapter。
    假如要往spinner中添加string[]或List。
    --------------------------------------------------------------------------------------------------------------
    a)string[]
    在MainActivity主类中定义一个字符串数组:
    private String[] str = new String[] {
      "山东","山西","北京"
    };


    定义一个继承BaseAdapter的类:
    private class MyAdapter extends BaseAdapter {

    @Override
    public int getCount() {
      // TODO Auto-generated method stub
      return str.length;//重要方法
    }

    @Override
    public Object getItem(int arg0) {
      // TODO Auto-generated method stub
      return null;
    }

    @Override
    public long getItemId(int arg0) {
      // TODO Auto-generated method stub
      return 0;
    }

    @Override
    public View getView(int position, View view, ViewGroup group) {//重要方法
      // TODO Auto-generated method stub
      //str.length多长此方法就执行几次
      TextView textView = new TextView(MainActivity.this);
      textView.setText(str[position]);
      return textView;
    }

    }


    在onCreate方法中:
    Spinner spinner = (Spinner) findViewById(R.id.spinner1);
    spinner.setAdapter(new MyAdapter());
    --------------------------------------------------------------------------------------------------------------
    b)List
    在MainActivity主类中定义一个List:
    private List list = new ArrayList();

    并在onCreate方法中添加内容:
    list.add("上海");
    list.add("天津");
    list.add("浙江");

    MyAdapter类则只需要修改几处即可:
    1. public int getCount() {

      return list.size();
    }

    2. public View getView(int position, View view, ViewGroup group) {

      TextView textView = new TextView(MainActivity.this);
      textView.setText((CharSequence) list.get(position));
      return textView;
    }

    3.还可以继续给spinner添加事件OnItemSelectedListener:
    spinner.setOnItemSelectedListener(new OnItemSelectedListener() {

    @Override
    public void onItemSelected(AdapterView<?> parent, View view,
    int position, long id) {
    // TODO Auto-generated method stub

      Toast.makeText(MainActivity.this, (CharSequence) list.get(position), 0).show();


    }

    @Override
    public void onNothingSelected(AdapterView<?> parent) {
    // TODO Auto-generated method stub



    }


    });

    --------------------------------------------------------------------------------------------------------------

  • 相关阅读:
    ffmpeg显示视频
    眼见为实(1):C++基本概念在编译器中的实现
    在Windows系统上实现轻量级的线程间及进程间消息队列
    Intellij IDEA 2017 debug断点调试技巧与总结详解篇
    redis 全局命令 查看所有的键,删除键,检查键是否存在,获取过期时间,键的数据结构类型
    java.security.InvalidKeyException: IOException : Short read of DER length
    RSA解密报错java.security.spec.InvalidKeySpecException的解决办法
    IntelliJ IDEA全局内容搜索和替换
    RSA加密/解密 Decryption error异常解决
    java rsa 解密报:javax.crypto.BadPaddingException: Decryption error
  • 原文地址:https://www.cnblogs.com/UUUP/p/3983394.html
Copyright © 2011-2022 走看看