如何从警报对话框更新Android Activity的UI

时间:2012-02-05 14:54:39

标签: android android-layout

我有一个Activity,其布局位于main.xml文件中,其中包含TextView,其ID为my_viewButton的内容为open_alert 1}}。单击该按钮将打开AlertDialog,单击确定后将被解除。取消AlertDialog后,我需要更新活动中TextView的值。

我无法从活动中更新TextView的值。

3 个答案:

答案 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()。