引言
ListView是Android中最常用的控件之一,几乎所有的应用程序都会用到它。由于手机屏幕空间都比较有限,能够一次性在屏幕上显示的内容并不多,当我们的程序中有大量的数据需要展示的时候,可以借助ListView来实现。
总体流程
- 新建一个Module,并让XxxActivity继承ListActivity
- 创建一个列表选项的字符串数组对象
- 实例化并初始化列表选项数组对象
- 创建一个数组适配器(Adapter),用于装载基础数据并设置列表选型的显示样式
- 将创建好的适配器绑定到窗体默认的ListView组件中
- 重写onListItemClick()方法完成对列表选项的单击事件处理
用法示例
Step-1 新建一个Activity窗体类
使用ListView,窗体类必须继承android.app.ListActivity
注意:窗体类在继承ListActivity之后,无需与布局资源绑定
public class MainActivity extends ListActivity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
Step-2 创建一个列表选项的字符串数组对象
private String[] listItems;
Step-3 实例化并初始化列表选项数组对象
listItems = new String[]{"AdvanceListView","TwoListView","ThirdListView"};
Step-4 创建一个数组适配器(Adapter),用于装载基础数据并设置列表选型的显示样式
语法:ArrayAdapter
adapter = new ArrayAdapter(Context,int,T[ ]);
参数1:上下文环境
参数2:列表选项样式布局
参数3:列表数据源
ArrayAdapter adapter = new ArrayAdapter(this,
android.R.layout.simple_list_item_1,
listItems);
Step-5 将创建好的适配器绑定到窗体默认的ListView组件中
setListAdapter(adapter);
Step-6 重写onListItemClick()方法完成对列表选项的单击事件处理
语法:protected void onListItemClick(ListView l, View v, int position, long id)
参数1:当前操作的ListView组件对象
参数2:当前选择的列表选项视图对象
参数3:当前选中的列表选项的下标位置标识(默认从0开始)
参数4:当前选中的id编号(长整型类型)
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
switch (position){
case 0:
Toast.makeText(MainActivity.this,"选择["+listItems[position]+"]",Toast.LENGTH_SHORT).show();
break;
case 1:
Toast.makeText(MainActivity.this,"选择["+listItems[position]+"]",Toast.LENGTH_SHORT).show();
break;
case 2:
Toast.makeText(MainActivity.this,"选择["+listItems[position]+"]",Toast.LENGTH_SHORT).show();
break;
default:
break;
}
}
结果展示
代码清单
import android.app.ListActivity;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
public class MainActivity extends ListActivity {
/*步骤一:创建一个列表选项的字符串数组对象*/
private String[] listItems;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
/*步骤二:实例化并初始化列表选项数组对象*/
listItems = new String[]{"AdvanceListView","CustomerActivity","ViewHolderActivity"};
/*步骤三:创建一个数组适配器(Adapter)用于装载基础数据并设置列表选项的显示样式*/
ArrayAdapter adapter = new ArrayAdapter(this,android.R.layout.simple_list_item_1,listItems);
/*步骤四:将创建好的适配器绑定到窗体默认的ListView组件中*/
setListAdapter(adapter);
}
/*步骤五:重写onListItemClick()方法完成对列表选项的单击事件处理*/
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
switch (position){
case 0:
Toast.makeText(MainActivity.this,"选择["+listItems[position]+"]",Toast.LENGTH_SHORT).show();
break;
case 1:
Toast.makeText(MainActivity.this,"选择["+listItems[position]+"]",Toast.LENGTH_SHORT).show();
break;
case 2:
Toast.makeText(MainActivity.this,"选择["+listItems[position]+"]",Toast.LENGTH_SHORT).show();
break;
default:
break;
}
}
}