Listview点击事件

时间:2021-10-02 16:26:34
listview = (ListView) findViewById(R.id.listview);
// 填充data数据
data = new ArrayList<String>();
data.add("window98");
data.add("win2000");
data.add("winxp");
data.add("win7");
// 创建adapter对象
adapter = new ArrayAdapter<String>(MainActivity.this, // 第一个参数:上下文
        android.R.layout.simple_list_item_1, // 第二个参数:布局
        data); // 第三个参数:List<String>数据
// 把adapter对应的内容显示到listview上
listview.setAdapter(adapter);
// 捕获listview的点击事件(通过Toast显示点击listview所在的行的数据)
// button.setXxxListener
listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    // 第一个参数: 对应我们点击的listview(AdapterView是ListView的父类)
    // 第二个参数:listview中每行的布局(用户点击的那行)
    // 第三个参数:用户点击行的位置(从0开始)
    // 第四个参数:用户点击行的ID(基本上和第三个参数一致)
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        // 当点击listview其中一项时调用该方法
        // 位置
        String str = "用户点击的位置是:" + position;
        // 内容 参数view(这里是android.R.layout.simple_list_item_1)实际上是个什么对象
        // android.R.layout.simple_list_item_1实际上就是一个TextView
        // 也就是说view实际上就是TextView的对象
        if (view instanceof TextView) {
            TextView textview = (TextView) view;
            str += "\n内容是:" + textview.getText();
        }
        Toast.makeText(MainActivity.this, str, Toast.LENGTH_LONG).show();
    }
});

效果图:
Listview点击事件