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); 

    }

  • 相关阅读:
    算法训练 P1103
    算法训练 表达式计算
    算法训练 表达式计算
    基础练习 时间转换
    基础练习 字符串对比
    Codeforces 527D Clique Problem
    Codeforces 527C Glass Carving
    Codeforces 527B Error Correct System
    Codeforces 527A Glass Carving
    Topcoder SRM 655 DIV1 250 CountryGroupHard
  • 原文地址:https://www.cnblogs.com/anyuan9/p/6171594.html
Copyright © 2011-2022 走看看