首页 > 解决方案 > 带有 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;
    }
}

标签: androidlistviewonclickdialog

解决方案


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。


推荐阅读