【发布时间】:2012-03-08 06:12:39
【问题描述】:
只要EditText 和ListView 很难弄清楚,我就尝试了另一种解决方案:ListView 和TextViews 当你点击一个时,我会用听众捕捉到焦点TextView (父 ListView 上的 OnItemClickListener)然后我打开一个 AlertDialog。
ISSUE :当我按下AlertDialog 上的OK 按钮时,我希望焦点TextView 获取警报对话框EditText 的文本值,但它不起作用,他保持相同的文本值。活动中:
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> a, View v, int pos, long id){
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,0);
id ++;
t = new TextView(activity);
t = (TextView) v;
AlertDialog.Builder alert = new AlertDialog.Builder(activity);
alert.setTitle("Title");
alert.setMessage("Message");
// Set an EditText view to get user input
final EditText input = new EditText(activity);
input.setText(t.getText());
alert.setView(input);
alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
//Changer la valeur dans la base et dans la liste
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.HIDE_NOT_ALWAYS,0);
t.setText(input.getText());
System.out.println("input avant : " + t.getText());
}
});
alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
// Canceled.
}
});
alert.show();
}
});
我认为这段代码足以让您知道我的代码有什么问题。只是想让你知道:
-
ListView和 t (TextView) 在活动类上声明为私有变量 - 有一个
Adapter类可以自动构建TextView列表 - 如果我在
ListView侦听器上更改EditText的值,它可以工作,但在对话框警报侦听器中,它不会。
询问您是否需要更多信息。
【问题讨论】:
标签: android android-listview textview android-alertdialog