如何从AlertDialog中的listview获取onItemclick

时间:2015-04-05 21:26:50

标签: android listview android-listview android-alertdialog android-filterable

我有一个带有三个相同按钮和三个相同TextView的Activity。 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) {
        }
    });

并且listview适配器扩展了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只会增加代码行

1 个答案:

答案 0 :(得分:2)

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