我创建了一个可以在整个应用程序中使用的通用标记器类。因此,可以使用填充了活动的有效标记类型的AlertDialog将activity1标记为type1,type2等。标签正确地存储到数据库中,但是现在我想要使用所选值更新活动中的TextView。
我尝试使用AsyncTask但似乎我无法对AlertDialog进行背景(这是有意义的)。我尝试了View.post(Runnable)方法得到了类似的结果。
鉴于AlertDialog是在外部类中发生的,无论如何我是否知道它已在我的主要活动中关闭然后更新TextView?
答案 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();