android 简单的列表适配器 事件监听
时间: 2023-10-08 20:09:00 浏览: 42
Android 中的列表适配器(Adapter)用于将数据与视图进行绑定,将数据适配到 ListView、RecyclerView 等列表控件上。在使用列表适配器时,我们通常需要对列表项进行事件监听,例如点击某个列表项后执行某个操作。以下是一个简单的列表适配器和列表项点击事件监听的示例代码:
```
public class MyAdapter extends BaseAdapter {
private Context mContext;
private List<String> mDataList;
public MyAdapter(Context context, List<String> dataList) {
mContext = context;
mDataList = dataList;
}
@Override
public int getCount() {
return mDataList.size();
}
@Override
public Object getItem(int position) {
return mDataList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = LayoutInflater.from(mContext).inflate(R.layout.list_item, parent, false);
holder = new ViewHolder();
holder.textView = convertView.findViewById(R.id.text_view);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.textView.setText(mDataList.get(position));
return convertView;
}
static class ViewHolder {
TextView textView;
}
}
public class MainActivity extends AppCompatActivity {
private ListView mListView;
private List<String> mDataList = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mListView = findViewById(R.id.list_view);
mDataList.add("Item 1");
mDataList.add("Item 2");
mDataList.add("Item 3");
mDataList.add("Item 4");
mDataList.add("Item 5");
MyAdapter adapter = new MyAdapter(this, mDataList);
mListView.setAdapter(adapter);
mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String item = (String) parent.getItemAtPosition(position);
Toast.makeText(MainActivity.this, "Clicked " + item, Toast.LENGTH_SHORT).show();
}
});
}
}
```
在上面的示例代码中,我们定义了一个 MyAdapter 类继承自 BaseAdapter,重写了 getCount、getItem、getItemId 和 getView 方法,用于绑定数据和视图。我们还定义了一个 ViewHolder 类,用于存储 ListView 中的视图控件,以避免重复调用 findViewById 方法。
在 MainActivity 中,我们创建了一个 ListView 控件,并将数据适配到 ListView 上。我们还设置了列表项的点击事件监听器,当用户点击某个列表项时,会弹出一个 Toast 显示所点击的列表项的内容。
其中,mListView.setOnItemClickListener 方法用于设置列表项的点击事件监听器,其中的 onItemClick 方法会在用户点击某个列表项时被调用。在 onItemClick 方法中,我们可以通过 getItemAtPosition 方法获取到用户所点击的列表项对应的数据,然后执行我们想要的操作。