我有一个带有三个相同按钮和三个相同TextView的Activity。 onClick上的每个按钮都通过以下代码调用AlertDialog:
PickerDialog = new PickerDialogFragment();
PickerDialog.show(getSupportFragmentManager(), "PickerDialog");
我的AlertDialog有一个带有addTextChangedListener
的EditTextsearchText.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只会增加代码行
答案 0 :(得分:2)
将“int resid”参数添加到类的构造函数中。使用'new PickerDialogFragment(R.id.button1);'实例化对话框。在findViewById中使用残差来获取按钮实例并设置其文本。