注意:ArrayAdapter比较简单,只能显示一行文本。
ListView只能实现纵向滚动的效果
首先记一下最最简单的ListView用法
当数据存在资源文件 res/values/strings.xml 中
<resources>
<string-array name="hardware_list">
<item>cpu</item>
<item>内存</item>
<item>显卡</item>
<item>固态硬盘</item>
<item>显示器</item>
</string-array>
</resources>
只需要在xml中为ListView控件添加属性 android:entries="@array/hardware_list",即可显示数据
<ListView
android:id="@+id/listV1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:entries="@array/hardware_list"
/>
以下代码均写在 activity 的 onCreate() 中
ArrayAdapter--数组
String[] strs = {"cpu","内存","固态硬盘","显卡","显示器","散热器"};
//参数android.R.layout.simple_expandable_list_item_1是系统提供的ListView模板
BaseAdapter adapter = new ArrayAdapter<String>(this, android.R.layout.simple_expandable_list_item_1,strs);
ListView listV1 = findViewById(R.id.listV1);
listV1.setAdapter(adapter);
ArrayAdapter--list
List<String> list = new ArrayList<>();
list.add("cpu");
list.add("显卡");
list.add("内存");
list.add("固态硬盘");
list.add("散热器");
BaseAdapter adapter = new ArrayAdapter<String>(this, android.R.layout.simple_expandable_list_item_1,list);
ListView listV1 = findViewById(R.id.listV1);
listV1.setAdapter(adapter);
ArrayAdapter--res/values/strings.xml (资源文件)
BaseAdapter adapter = ArrayAdapter.createFromResource(this,R.array.hardware_list,android.R.layout.simple_dropdown_item_1line);
ListView listV1 = findViewById(R.id.listV1);
listV1.setAdapter(adapter);