简介:大家都知道,在之前我们学过一些基础控件,如TextView:文本视图,ImageView:图片视图。大家自己寻找不难发现,这些控件只能单个显示,而不能成堆的显示文本或者图片,就像表格那样。那么在接下来的时间我将介绍android中高级控件ListView的使用。
1.ListView的简单使用
布局代码:
<ListView
android:id="@+id/mListView"
android:layout_width="match_parent"
android:layout_height="300dp"
/>
Java代码:
//1:初始化ListView
mListView = (ListView) findViewById(R.id.mListView);
//2:数据源 ArrayAdapter 文字
final List<String> data = getData();
//3:适配器
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
MainActivity.this,//上下文对象
android.R.layout.simple_list_item_1, //条目的布局 最外层 必须是TextView
data
);
//4:展示数据
mListView.setAdapter(adapter);
mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
new AlertDialog.Builder(MainActivity.this)
.setTitle("标题")
.setMessage(data.get(position))
.show();
}
});
效果图:
注意:这里我们配合使用一个简单的适配器:ArrayAdapter 接下来还有SimpleAdapter, BaseAdapter。
SimpleAdapter的简单使用:也许看了上文的效果图之后我们会觉得这样的排列并不能达到我们日
常生活中所看到的那种效果,那是使用ArrayAdapter只能显示文本而不能显示图片,所以我们需要学习SimpleAdapter
。
ListView的初始化如上文所述,在此不过多说明。
Java代码:
1:初始化控件mListView = (ListView) findViewById(R.id.mListView);
//2:数据源 List<String> 文图 List<对象/Map>
getData(); 获取数据源的方法。
//mList数据源
//3:创建适配器
SimpleAdapter adapter = new SimpleAdapter(
SimpleAdapterActivity.this,
mList,//数据源固定 只能是List<? extends Map<String,?>>
R.layout.item,//为我们自定义创建的视图文件,配合同时显示文本和视图
new String[]{"key_img", "key_text"},//from value t
new int[]{R.id.item_img, R.id.item_text} //to--->控件
);
//4:显示数据
mListView.setAdapter(adapter);
5:设置ListView条目的点击事件。
mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
}
});
效果图:
在这里大家得注意SimpleAdapter的数据源只能是List<Map<>> 类型的。今天就到这里。