布局文件
<ListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/lv"
/>
创建Item_Layout.xml 文件 、编辑为 ListView 显示的格式
<?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"
android:padding="20dp"
>
<ImageView
android:layout_width="200dp"
android:layout_height="200dp"
android:id="@+id/iv_img"
android:background="@drawable/ic_baseline_settings_24"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="雨中漫步"
android:id="@+id/tv_title"
android:layout_toRightOf="@id/iv_img"
android:textSize="30sp"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/tv_body"
android:text="人生就像旅行"
android:layout_below="@id/tv_title"
android:layout_toRightOf="@id/iv_img"
android:padding="30dp"
/>
</RelativeLayout>
创建实体类(JavaBean)、存放数据要显示的数据
public class ItemBean {
private String title;
private String content;
private int imgResId;
}
创建适配器继承BaseAdapter、实现4个方法
//数据源
private List<ItemBean> itemBeans;
//布局数据源
private LayoutInflater layoutInflater;
//上下文
private Context context;
public MyAdapter(Context context , List<ItemBean> itemBean) {
this.context = context;
this.itemBeans = itemBean;
layoutInflater = LayoutInflater.from(context);
}
//为ListView显示内容
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
//创建每一个条目
view = layoutInflater.inflate( R.layout.list_item_layout , viewGroup , false);
//找到条目里面控件Id
ImageView imageView = view.findViewById(R.id.iv_img);
TextView textViewTitle = view.findViewById(R.id.tv_title);
TextView textViewBody = view.findViewById(R.id.tv_body);
//拿到数据
ItemBean itemBean = itemBeans.get(i);
//为控件设置要显示的内容
imageView.setImageResource(itemBean.getImgResId());
textViewTitle.setText(itemBean.getTitle());
textViewBody.setText(itemBean.getContent());
//最后返回条目
return view;
}
最后Activity代码
//声明控件
private ListView listView;
private List<ItemBean> itemBeans;
private MyAdapter myAdapter;
初始化控件
private void initView() {
listView = findViewById(R.id.lv);
}
准备数据(也可以请求网络中的然后Json解析)
private void initData() {
//创建数组
itemBeans = new ArrayList<>();
//准备数据
ItemBean itemBean1 = new ItemBean();
itemBean1.setTitle("我是i但撒谎嗲是丢啊是大i撒谎的奥萨蒂还大还大阿萨");
itemBean1.setContent("ldksudoijclxjd4fef51er35f1");
//数据添加到数组中
itemBeans.add(itemBean1);
}
实例化Adapter
private void initAdapter() {
myAdapter = new MyAdapter(this,itemBeans);
//为ListView绑定Adapter
listView.setAdapter(myAdapter);
//绑定点击事件
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
//获取条目内容、进行其他操作
ItemBean itemBean = itemBeans.get(i);
}
});
}
标签:基本,ListView,private,itemBean,context,使用,itemBeans,view
From: https://www.cnblogs.com/loulan/p/16974669.html