安卓ListView

1、ListView基本原理

  • ListView是显示内容得地方,Adapter规定显示内容得样式,DataSource提供数据源,减少了编写复杂显示样式得代码

在这里插入图片描述

  • ListView仅是作为容器(列表),用于装载显示数据(就是上面的一个个的红色框的内容,也称为item)。iem中的具体数据是由适配器( adapter)来提供的。
  • 适配器(adapter):作为View(不仅仅指的ListView)和数据之间的桥梁或者中介,将数据映射到要展示的View中这就是最简单适配器模式,也是适配器的主要作用!

2、Adapter

  • Adapter:Adapter控件通常包含多个格式相同的列表,对于这些列表而言,使用setText()
    、setTextColor()等方法将几十到几百行格式相同的内容进行简单的设置是不可取的。所以事先把要加载的内容放入到一个列表中,然后把这个列表放到Adapter中对各项资源统一进行设置。这个存放Adapter控件的内容列表称为Adapter(适配器)。Adapter可以理解为一个显示器,它可以把复杂的数据按人们容易接受的方式进行显示。

3、ListView的基本使用方法
·1.构建数据源
·数组、集合、xml
·2.创建适配器
·ArrayAdapter<String)arrayAdapter=new ArrayAdapter(String)(this,android.R.layout.simple_1arr):
·3.为ListView设置Adapter
· setAdapter(arrayAdapter);
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

### 关于Android ListView 使用及实例 #### 创建带有ListView的项目结构 为了创建一个包含`ListView`组件的应用程序,可以按照如下方式设置新项目[^2]: ```java // 在项目的清单文件中定义主活动 <activity android:name=".MyListActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> // 设置布局资源文件 res/layout/activity_my_list.xml 中的内容视图为主列表项集合 <ListView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/list_view" android:layout_width="match_parent" android:layout_height="wrap_content"/> ``` #### 实现简单的ListView适配器 对于显示数据到`ListView`而言,通常会自定义一个继承自`BaseAdapter`类或其他内置适配器(如`ArrayAdapter`)的对象。这里给出基于数组的数据源例子。 ```java public class MyListAdapter extends ArrayAdapter<String> { private Context context; private String[] values; public MyListAdapter(Context context, int textViewResourceId, String[] objects) { super(context, textViewResourceId, objects); this.context = context; this.values = objects; } @Override public View getView(int position, View convertView, ViewGroup parent) { LayoutInflater inflater = (LayoutInflater)context.getSystemService( Context.LAYOUT_INFLATER_SERVICE); View rowView = inflater.inflate(R.layout.row_layout, null); TextView textView = (TextView)rowView.findViewById(R.id.label); ImageView imageView = (ImageView)rowView.findViewById(R.id.logo); textView.setText(values[position]); // 更多配置... return rowView; } } ``` 其中`row_layout.xml`是每一行条目的外观描述,在此省略具体实现细节。 #### 绑定ListView与适配器 最后一步是在活动中初始化并绑定`ListView`和其对应的适配器对象。 ```java @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my_list); // 获取ListView控件引用 ListView listView = findViewById(R.id.list_view); // 准备一些测试字符串作为展示内容 String[] items = {"Item One", "Item Two", "Item Three"}; // 构造适配器并将它关联给listview MyListAdapter adapter = new MyListAdapter(this,R.layout.row_layout,items); listView.setAdapter(adapter); } ``` 上述代码片段展示了如何构建基本的`ListView`及其交互逻辑。当然实际应用可能涉及更复杂的场景比如加载网络图片、处理点击事件等操作[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值