zoukankan      html  css  js  c++  java
  • 第28讲 UI组件之 ListView和ArrayAdapter

    第28讲 UI组件之 ListView和ArrayAdapter

    1. Adapter 适配器

    Adapter是连接后端数据和前端显示的适配器接口,是数据和UI(View)之间一个重要的纽带。在常见的View(ListView,GridView)等地方都需要用到Adapter。如下图直观的表达了Data、Adapter、View三者的关系:

    常用的适配器有四种:

    BaseAdapter      基础数据适配器,继承它需要重写较多的方法,所以也就具有较高的灵活性;

    ArrayAdapter     数组适配器,最为简单,只能展示一行字。

    SimpleAdapter   简单适配器,功能强大,最好的扩充性,可以自定义出各种效果。

    SimpleCursorAdapter      数据库适配器,可认为是SimpleAdapter对数据库的简单结合,可以方便地把数据库的内容以列表的形式展示出来。

    2.ListView(列表视图)

    ListView是Android开发中非常常用的组件,ListView可以用来显示一个列表,可垂直滚动。我们可以对这个列表操作,比如点击列表要做什么等等。在ListView当中显示的元素需要使用一个适配器(Adapter)进行包装。

     代码示例1:

    android:divider="#00ff00"                //分割线颜色

    android:dividerHeight="6dp"           //分割线粗细

    public class MainActivity extends Activity{

    //数组数据,数据源

    private final String[] ss=newString[]{"云南","北京","上海","香港","大连","天津","大理","云南","北京","上海","香港","大连","天津","大理","昆明" };

    protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

    ListView mListView = (ListView)findViewById(R.id.listView1);

    //设置一个Adapter,中间为布局结构,ss为数据源

    ArrayAdapter<String> adapter = newArrayAdapter<String>(this, android.R.layout.simple_list_item_1,ss);

    /*可以在ListView顶端或者底部添加一个布局,例如搜索。

    //其中footer.xml为自定义的一个布局结构。

    View view = getLayoutInflater().inflate(R.layout.footer, null);

    // listView.addHeaderView(view);

    listView.addFooterView(view);

    */

    listView.setListAdapter(adapter);

                       }

    }

    代码示例2:

    //为了使得search按钮实现搜索功能,代码如下添加或修改

    final ListViewmListView = (ListView) findViewById(R.id.listView1);

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,ss);

    ViewGroup group=(ViewGroup)getLayoutInflater().inflate(R.layout.footer, null);

    Button button=(Button)group.findViewById(R.id.button1);

    final EditTexteditText=(EditText) group.findViewById(R.id.editText1);

    button.setOnClickListener(new OnClickListener(){

    public void onClick(View v) {

    String string=editText.getText().toString();

    int position=Integer.valueOf(string);

    listView.setSelection(position);

    }

    });

    listView.addHeaderView(group);

    listView.setListAdapter(adapter);

     

    代码示例3:

    public class SimpleList extendsListActivity {

    //数组数据,数据源

    private String[] mListStr = {"姓名:雨松MOMO","性别:男","年龄:25","居住地:北京","邮箱:xuanyusong@gmail.com"}; 

    ListView mListView = null;

    protected void onCreate(BundlesavedInstanceState) { 

       mListView = getListView(); 

    setListAdapter(newArrayAdapter<String>(this, android.R.layout.simple_list_item_1,mListStr)); 

       mListView.setOnItemClickListener(new OnItemClickListener() { 

           public void onItemClick(AdapterView<?> adapterView, View view, intposition, long id) { 

                              Toast.makeText(SimpleList.this,"您选择了" +mListStr[position], Toast.LENGTH_LONG).show(); 

           } 

       }); 

            super.onCreate(savedInstanceState); 

    }

  • 相关阅读:
    django框架之有名分组、无名分组、路由分发、反向解析等相关内容-62
    django框架之请求生命周期及ORM引入等相关内容-61
    django框架之目录介绍等相关内容-60
    django框架之引入及基础介绍等相关内容-59
    前端之JavaScript练习等相关内容-58
    django之jwt多方式登陆及多表群操作增删改查等相关内容-90
    Linux基础之虚拟机创建、网卡激活、切换YUM源及用户级别等相关内容-92
    django框架之auth组件等相关内容-76
    django框架之单表查询等相关内容-67
    自律
  • 原文地址:https://www.cnblogs.com/anyuan9/p/6171594.html
Copyright © 2011-2022 走看看