【问题标题】:How to get onItemclick from listview in a AlertDialog如何从 AlertDialog 中的列表视图获取 onItemclick
【发布时间】:2015-04-05 21:26:49
【问题描述】:

我有一个包含三个相同按钮和三个相同 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 只会增加代码行数

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2018-05-04
      • 2018-12-09
      • 2014-10-30
      • 1970-01-01
      • 1970-01-01
      • 2011-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多