ListView与ArrayAdapter的使用

要使用酷炫的listView,必须要会用适配器。
什么是适配器呢,适配器就是将布局和数据连接起来的东西。
比如,一个ListView里面有很多行东西(Item),这些东西有可能只是一个字符串,也有可能是一个比较复杂的布局;
但只需要显示字符串的时候,我们可以很简单解决,代码如下;
list的xml布局:


main函数代码:
package com.example.adapter_test; import android.R.layout; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.widget.Adapter; import android.widget.ArrayAdapter; import android.widget.ListView; public class MainActivity extends Activity { ListView listView; String str[]= {"apple","banana","orange","yigeliyigelide","yigeciyigecide"}; //string作为数据源 ArrayAdapter adapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listView = (ListView)findViewById(R.id.listView1); adapter = new ArrayAdapter(MainActivity.this, android.R.layout.simple_list_item_1,str); //第一个是上下文,写当前活动的对象即可 //第二个固定,第三个数据源 listView.setAdapter(adapter); //将listView和装载了了布局和数据源的适配器绑定,使得listView知道自己该怎么显示,显示什么的东西 }}

运行结果:
ListView与ArrayAdapter的使用
文章图片

ListView自定义布局:
第一步:新建一个类,这个类就代表每个ListView项是个什么东西,比如说我每个View都是一条日志,日志由标题和内容组成,那么我可以新建一个下面这样的日志类,代码如下:
package com.example.xiongy; public class RZ { String rz_bt; String rz_nr; public RZ(String rz_bt,String rz_nr) { this.rz_bt = rz_bt; this.rz_nr = rz_nr; } public String getbt() { return rz_bt; } public String getnr() { return rz_nr; } }

第二步:新建一个XML文件,这个文件代表着每个View里面的布局是怎样的,我的布局如下,就是两个textview数值排放,代码如下:

第三步:新建一个类,继承ArrayAdapt,并重写getView方法,代码如下:
package com.example.xiongy; import java.net.ContentHandler; import java.util.List; import org.w3c.dom.Text; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.TextView; public class RZAdapter extends ArrayAdapter{ private final int resourceId; public RZAdapter(Context context,int resource,List objects) { // TODO Auto-generated constructor stub super(context, resource, objects); resourceId = resource; } public View getView(int position, View converView,ViewGroup parent) { RZ rz = (RZ)getItem(position); View view = LayoutInflater.from(getContext()).inflate(resourceId, null); TextView text_bt = (TextView)view.findViewById(R.id.textview_bt); TextView text_nr = (TextView)view.findViewById(R.id.textview_nr); text_bt.setText(rz.getbt()); text_nr.setText(rz.getnr()); return view; } }

第四步:main函数
List RZList= new ArrayList(); //新建一个List存放日志类ListView listView; listView = (ListView) findViewById(R.id.lsit_rz); //定义listView//适配器定义和设置 RZAdapter adapter; adapter = new RZAdapter(MainActivity.this, R.layout.activity_item_rz, RZList); //第二个参数 //就是上面哪个新建的XML的id listView.setAdapter(adapter);

【ListView与ArrayAdapter的使用】基本完成,截图改天上。

    推荐阅读