AlertDialog返回

时间:2013-11-18 18:21:00

标签: android android-alertdialog

我创建了一个可以在整个应用程序中使用的通用标记器类。因此,可以使用填充了活动的有效标记类型的AlertDialog将activity1标记为type1,type2等。标签正确地存储到数据库中,但是现在我想要使用所选值更新活动中的TextView。

我尝试使用AsyncTask但似乎我无法对AlertDialog进行背景(这是有意义的)。我尝试了View.post(Runnable)方法得到了类似的结果。

鉴于AlertDialog是在外部类中发生的,无论如何我是否知道它已在我的主要活动中关闭然后更新TextView?

2 个答案:

答案 0 :(得分:0)

取决于AlertDialog初始化代码的位置。如果要从需要更新的Activity中启动AlertDialog,则只需在对话框的OnClickListener回调中调用Activity的方法即可。如果对话框正在应用程序的其他位置初始化,并且不知道哪个Activity将是当前的,则可以使用LocalBroadcastManager从AlertDialog的回调中发送广播消息,并在每个需要的Activity中注册/取消注册BroadcastReceiver。如果它是当前活动的,则更新。

答案 1 :(得分:0)

只需为正面按钮实现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("Your Text");
       }
     })
  .setNegativeButton(R.string.cancel, null).create().show();