android - 带有 customadapter 的 ListView -> onclick 对话框
问题描述
当我单击 ListView 项(使用自定义适配器)时,我想创建一个对话框,但我真的不知道如何从 ListView 中获取一个特定的东西以放入对话框中。我只想在对话框中显示描述。先感谢您!
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
AlertDialog.Builder alertDialog = new AlertDialog.Builder (WorkoutActivity.this);
alertDialog.setTitle("Description");
String selectedItem = (String) parent.getItemAtPosition(position);
alertDialog.setMessage(selectedItem);
alertDialog.setNegativeButton("Cancel", new OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
finish();
}
});
alertDialog.show();
}
});
这是自定义适配器
class CustomAdapter extends BaseAdapter {
@Override
public int getCount() {
return IMAGES.length;
}
@Override
public Object getItem(int i) {
return null;
}
@Override
public long getItemId(int i) {
return 0;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
view = getLayoutInflater().inflate(R.layout.customlayout, null);
ImageView image=(ImageView)view.findViewById(R.id.image);
TextView name=(TextView)view.findViewById(R.id.name);
TextView description=(TextView)view.findViewById(R.id.description);
image.setImageResource(IMAGES[i]);
name.setText(NAMES[i]);
description.setText(DESCRIPTIONS[i]);
return view;
}
}
解决方案
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
buider.setTitle("Description");
builder.setMessage(adapter.getItem(position).selectedItem);
builder.setNegativeButton("Cancel", new OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
finish();
}
});
AlertDialog dialog = builder.create();
dialog.show();
}
});
这将在对话框中显示 selectedItem。
推荐阅读
- xml - 减去两个值
- mongodb - 与数组聚合时如何提高糟糕的 MongoDB 查询性能
- java - 在 ruby 项目中添加 jruby 后构建失败
- c# - 无法使用 C# 中的 Outlook Graph API v2 从电子邮件中读取附件
- firebase-cloud-messaging - 如何识别和删除服务器上过期的 FCM 令牌?
- python - 这些命令是否执行相同的操作?
- java - 如何在命令行上为java的modulepath指定多个jar文件?
- elasticsearch - 使用 Fluentd 配置 Istio 会引发超时错误
- oracle - Kafka JDBC 接收器连接器 - Oracle
- php - Homebrew 升级丢弃 PHP:dyld:未加载库:/usr/local/opt/libpsl/lib/libpsl.5.dylib