androidlistview的用法 androidinflate详解

犹豫了几天 , 觉得还是把这个教程写一下吧 。虽然在网上已经一大堆了 , 但是这是我学习的历程我觉得我还是该记录下来 , 以后也可以温故而知新 。
ListView在Android众多控件中占有比较重要的地位 , 也是面试官热爱提问的控件之一 , 特别是关于它的性能优化 。这一块我想着把它留到最后再说 , 我们先来谈谈ListView的简单应用 , 毕竟什么东西都是由浅入深的嘛 。
首先我们要先创建一个项目 , 打开Android studio点击File—New—New Project创建一个名为ListViewTest的项目 。接着找到res—layout文件夹下的activity_main.xml , 打开它并且在里面添加ListView控件如下:
<ListViewandroid:id="@+id/listview"android:layout_width="match_parent"android:layout_height="match_parent"></ListView>此时你如果运行项目你会发现里面什么都没有 , 和刚开始创建的这个项目时没多大区别 , 因为我们还没有往里面添加数据并且在View中实现它 。所以我们回到MainActivity这个类里面通过findViewById()这个方法找到这个控件并且实现 。我们先定义一个名为data的一维字符串数组 , 用来存放我们的假数据 。然后通过新建一个ArrayAdapter并根据要求配置它 , 再Adapte通过setAdapter给ListView , 代码如下:
private String data[] = {"aa","bb","cc","dd","aa","bb","cc","dd","aa","bb","cc","dd","aa","bb","cc","dd"};//假数据@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);ListView listView = (ListView) findViewById(R.id.listview);//在视图中找到ListViewArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,data);//新建并配置ArrayAapeterlistView.setAdapter(adapter); }点击运行项目你就能看到一个简单的ListView:

androidlistview的用法 androidinflate详解


现在看到了界面了但是离我们的预想还是有点差距 , 我们希望的是除了能看还能点击响应某些事件 , 因此我们再为它添加一个监听点击的方法 。代码如下:
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {switch (i){case 0:Toast.makeText(MainActivity.this,"你点击了"+i+"按钮",Toast.LENGTH_SHORT).show();break;//当我们点击某一项就能吐司我们点了哪一项case 1:Toast.makeText(MainActivity.this,"你点击了"+i+"按钮",Toast.LENGTH_SHORT).show();break;case 2:Toast.makeText(MainActivity.this,"你点击了"+i+"按钮",Toast.LENGTH_SHORT).show();break;case 3:Toast.makeText(MainActivity.this,"你点击了"+i+"按钮",Toast.LENGTH_SHORT).show();break;case 4:Toast.makeText(MainActivity.this,"你点击了"+i+"按钮",Toast.LENGTH_SHORT).show();break;}}});这里我就给了5项Item做了响应 , 当然也可以让每一项都有响应的 , 有兴趣自己可以去尝试 。这样一个非常简单的ListView就完成了 , 接下来我们来深入一点点 。
现在我们要定制一个有图片有文字有选择框的ListView , 怎么做呢?第一个我们肯定要把数据改一下 , 但是我们肯定不可能说把数组data改成二维数据就可以的 , 因为图片不是字符串的形式啊 。那要包含字符串又能包含图片的数据格式有什么呢?这时Bean类就出现了 , 我们可以把这些数据封装到一个Bean类里面啊 , 当我们需要的时候就直接拿出来就好 。说做就做然后我们定义一个myBean类 , 代码如下:

推荐阅读