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(); } });
效果图: