我有一个Activity
,其布局位于main.xml
文件中,其中包含TextView
,其ID为my_view
,Button
的内容为open_alert
1}}。单击该按钮将打开AlertDialog
,单击确定后将被解除。取消AlertDialog
后,我需要更新活动中TextView
的值。
我无法从活动中更新TextView
的值。
答案 0 :(得分:3)
只需为正面按钮实现onClick
侦听器:
new AlertDialog.Builder(this)
.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton)
{
TextView text = (TextView) v.findViewById(R.id.my_view);
if (text != null)
{
text.setText("new text");
}
})
.setNegativeButton(R.string.cancel, null).create().show();
答案 1 :(得分:1)
一种方法是在Alert中的OnClickListener上重新启动活动。如果要将值传递到视图中,只需在intent中添加一个额外属性,然后在TextView中重置该值。我已经发布了一个粗略的代码供参考。
alert.setNeutralButton("OK", new OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
//create a new intent
Intent intent = new Intent("YOUR ACTIVITY NAME");
//add your value in the intent
int value = //your value
intent.putExtra("value",value );
//start your activity
startActivity(intent);
}
});
并在您的活动中
Intent intent = getIntent();
yourTextView.setText(intent.getExtras().getString("value"));
不知道这是否是最有效的方法,但应该有效。
答案 2 :(得分:0)
首先,您应该确保XML:editable属性存在于XML文件中,并且对于目标TextView设置为true。然后,在onClick()方法中,您只需要使用setText()。