一手遮天 Android - view(ListView): ListView 通过 ArrayAdapter 显示数据
一手遮天 Android - view(ListView): ListView 通过 ArrayAdapter 显示数据
示例如下:
/view/listview/ListViewDemo1.java
/**
* ListView 通过 ArrayAdapter 显示数据
*
* 适配器中包含了数据和项模板
*/
package com.webabcd.androiddemo.view.listview;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import com.webabcd.androiddemo.R;
public class ListViewDemo1 extends AppCompatActivity {
private ListView _listView2;
private ListView _listView3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_view_listview_listviewdemo1);
_listView2 = (ListView) findViewById(R.id.listView2);
_listView3 = (ListView) findViewById(R.id.listView3);
sample();
}
private void sample() {
// 通过指定的数组资源(需要显示的数据)和项模板(需要显示的样式)创建 ArrayAdapter
// ArrayAdapter - 数组适配器(另外还有 SimpleAdapter, BaseAdapter 自定义适配器)
// 数据来自指定的数组资源
// 项模板为 simple_list_item_1(另外还有其他很多系统内置项模板,不一一列列举了,因为实际最常用的还是自定义项模板)
ArrayAdapter<CharSequence> adapter2 = ArrayAdapter.createFromResource(this, R.array.arrayCountry, android.R.layout.simple_list_item_1 );
_listView2.setAdapter(adapter2);
// 通过指定的项模板(需要显示的样式)和数组(需要显示的数据)创建 ArrayAdapter
// 项模板为自定义的 res/layout/item_view_listview_listviewdemo1.xml
// 数据来自指定的数组
String[] arrayData = {"中国", "美国", "日本"};
ArrayAdapter<String> adapter3 = new ArrayAdapter<>(this,R.layout.item_view_listview_listviewdemo1, arrayData);
_listView3.setAdapter(adapter3);
}
}
/layout/activity_view_listview_listviewdemo1.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<!--
ListView 显示 res/values/arrays.xml 中定义的数组数据(参见 res/values/arrays.xml 中的名为 arrayCountry 的数组)
entries - 指定需要显示的数组资源
-->
<ListView
android:id="@+id/listView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:entries="@array/arrayCountry" />
<ListView
android:id="@+id/listView2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10sp" />
<ListView
android:id="@+id/listView3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10sp" />
</LinearLayout>
/layout/item_view_listview_listviewdemo1.xml
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:textColor="#0000ff"
android:textSize="24dp" />