我有一个Tab接口,有两个独立的活动,我们称之为ActA和ActB。这两个活动都可以启动自定义Dialog,我想在这个对话框中有一个按钮调用ActBs的方法,(ActB是一个数据库的ListView,而问题的方法是填充列表,基本刷新) 。 我怎么能让对话框活动引用ActB来调用它的方法?谢谢!
编辑:我会提供更多细节。我从Google的记事本教程中学习了这个程序,该教程讲授SQLite DB。我把它分成两个活动,一个用于创建条目,然后保存它们(ActA);另一个用于查看条目(ActB)。现在,最近,我将这些活动放在标签中,而不是通过手机的菜单键访问它们。不幸的是,这似乎阻止了ListActivity调用其“fillData()”方法。答案 0 :(得分:1)
如果您扩展 android Dialog 类,您可以在Activity中实现Dismiss Listener并在创建Dialog时设置它,然后在侦听器中设置它根据用于关闭Dialog的按钮,实现您想要的任何功能。
如果您的自定义对话框本身就是一个活动,并且您使用 startActivity 调用它,则可以为 startActivityForResult 更改它,并在刷新按钮<中实现/ strong> 对话 setResult ,带有自定义Intent,通知调用的Activity刷新自己。
有关如何使用startActivityForResult的更多信息,请查看here。
答案 1 :(得分:0)
A)一种方法是使用Broadcasts和BroadcastReceiver:http://developer.android.com/reference/android/content/BroadcastReceiver.html 您为活动定义了某些意图过滤器,然后通过发送广播 sendBroadcast(intent),其中intent在您的活动中触发该方法。
B)另一种方法:定义两个活动正在实现的接口,即handleDialogButton。由于您在对话框构造函数中传递了上下文,因此可以对它们执行某些操作。
答案 2 :(得分:0)
ImageButton button= (ImageButton) dialog.findViewById(R.id.imageButton5);
button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
finish();
Intent myIntent = new Intent(getBaseContext(), Abc.class);
startActivity(myIntent);
}
});
尝试使用此代码从Dialog Button单击开始新活动。