如何从 AlertDialog 中的列表视图获取 onItemclick

问题描述 投票:0回答:1

我有一个带有三个相同按钮和三个相同文本视图的活动。每个按钮 onClick 都会通过以下代码调用 AlertDialog:

    PickerDialog = new PickerDialogFragment();
    PickerDialog.show(getSupportFragmentManager(), "PickerDialog");

我的 AlertDialog 有一个带 addTextChangedListener 的 EditText

searchText.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {
        }
        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            adapter.getFilter().filter(s);
            adapter.notifyDataSetChanged();
        }
        @Override
        public void afterTextChanged(Editable s) {
        }
    });

列表视图适配器扩展了cursoradapter并实现了可过滤功能

listView.setTextFilterEnabled(true);
    adapter.setFilterQueryProvider(new FilterQueryProvider() {
        @Override
        public Cursor runQuery(CharSequence constraint) {
            return dbHelper.filterCodes(db, constraint); //returns a cursor
        }
    });

我想要实现的是直接更改AlertDialog内Listview中用户选择的值上的按钮文本。

除此之外,如果可能的话,我想使用用户从过滤列表中选择的值来设置 edittext 的值,然后单击肯定按钮时,我将设置每个按钮的值

所以我的问题是 listview.onItemClickListener 和 builder.setPositiveButton 和 builder.setNegativeButton 里面有什么

我也无法识别哪个按钮调用了AlertDialog,并且为每个按钮创建不同的alertdialog只会增加代码行数

java android listview android-listview android-alertdialog
1个回答
1
投票

将“int resid”参数添加到类的构造函数中。使用“new PickerDialogFragment(R.id.button1);”实例化您的对话框。使用 findViewById 中的 resid 来获取按钮实例并设置其文本。

© www.soinside.com 2019 - 2024. All rights reserved.