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

    }

  • 相关阅读:
    LeetCode--Sudoku Solver
    LeetCode--Merge Intervals
    LeetCode--Valid Number
    LeetCode--Max Points on a Line
    1.1
    智能指针原理与简单实现(转)
    C++内存管理(转)
    算法题--扔棋子
    LeetCode--Substring with Concatenation of All Words
    线性代数与MATALB1
  • 原文地址:https://www.cnblogs.com/anyuan9/p/6171594.html
Copyright © 2020-2023  润新知