安卓Listview,setview
时间: 2024-03-25 15:36:32 浏览: 67
安卓listview
安卓ListView是一个常用的控件,用于显示一个可滚动的列表。setView是ListView中的一个方法,用于为每一个列表项设置一个自定义的视图。
具体来说,通过setView方法可以将一个自定义的布局文件与ListView中的每个列表项进行绑定,实现对列表项的自定义展示。通常的使用方法是先创建一个自定义的布局文件,然后在Adapter中重写getView方法,在该方法中将布局文件与数据进行绑定,最后通过setAdapter方法将Adapter与ListView关联起来。
下面是一个简单的示例代码:
```
// 创建一个自定义的布局文件,包含一个TextView和一个ImageView
// list_item.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<ImageView
android:id="@+id/image"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/text"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
// 在Adapter中重写getView方法,将布局文件与数据进行绑定
class MyAdapter extends BaseAdapter {
private List<String> mData;
private LayoutInflater mInflater;
public MyAdapter(Context context, List<String> data) {
mData = data;
mInflater = LayoutInflater.from(context);
}
@Override
public int getCount() {
return mData.size();
}
@Override
public Object getItem(int position) {
return mData.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.list_item, null);
holder = new ViewHolder();
holder.image = (ImageView) convertView.findViewById(R.id.image);
holder.text = (TextView) convertView.findViewById(R.id.text);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.text.setText(mData.get(position));
holder.image.setImageResource(R.drawable.icon);
return convertView;
}
private static class ViewHolder {
ImageView image;
TextView text;
}
}
// 在Activity中,将Adapter与ListView关联起来
ListView listView = (ListView) findViewById(R.id.list_view);
List<String> data = new ArrayList<>();
data.add("item 1");
data.add("item 2");
data.add("item 3");
MyAdapter adapter = new MyAdapter(this, data);
listView.setAdapter(adapter);
```
阅读全文