1.创建ListView程序对应的布局文件(activity_main.xml)
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.helloworldd.MainActivity" >
<ListView
android:id = "@+id/lv";
android:layout_width="match_parent";
android:layout_height = "wrap_content"/>
</LinearLayout>
2.创建Item布局
创建好ListView界面之后接下来需要创建ListView条目,在res/layout目录下创建一个list_item.xml文件,指定Item布局
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:id="@+id/tv_list"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:paddingLeft="10dp"
android:layout_marginLeft="10dp"
android:textSize="18sp"
android:hint="item布局"
/>
</RelativeLayout>
3.编写界面交互代码(MainActivity)
public class MainActivity extends ActionBarActivity {
private ListView listView;
//存放回帖信息,data获取的数据我就不写了,大家可以把data替换成
//其他
List<String> data = new ArrayList<String>();
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//绑定控件
listView = (ListView) findViewById(R.id.listView1);
//创建一个Adapter的实例
final MyBaseAdapter mAdapter = new MyBaseAdapter();
//设置Adapter
listView.setAdapter(mAdapter);
}
/*
* 创建一个类继承BaseAdapter
*/
class MyBaseAdapter extends BaseAdapter{
/**
* 得到Item的总数
*/
@Override
public int getCount() {
// TODO Auto-generated method stub
//返回ListView Item条目的总数
return data.size();
}
/**
* 得到Item代表的对象
*/
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
// 返回ListView Item条目代表的对象
return data.get(position);
}
/**
* 得到Item的id
*/
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
//返回ListView Item的id
return position;
}
/**
* 得到Item的View视图
*/
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
//将List_item.xml文件找出来并转换成View对象
View view = View.inflate(MainActivity.this, R.layout.list_item, null);
//找到list_item.xml中创建的TextView
TextView textView = (TextView) view.findViewById(R.id.tv_list);
textView.setText(data.get(position));
return view;
}
}
上述代码的MyBaseAdapter类,是用来适配数据到ListView的,继承自BaseAdapter并实现了getCount(),getItem(),getItemId(),getView()这4个方法。其中,getView()方法中调用了View.inflate()方法,这个方法的作用是将list_item布局找出来。只有在找出了布局之后,才能调用findViewById()的方法去找到控件。