我想询问有关我正在制作的应用的建议......
在我的应用程序中,如果用户按下屏幕1中的特定按钮,则屏幕2上将出现一个对话框,打开屏幕2。否则,如果未单击屏幕1上的按钮,则屏幕2上的对话框将不会显示。
我不是要求你们发布大量的代码来获得答案,但我只是要求我应该遵循的步骤/算法以实现我的目标......提前感谢!
答案 0 :(得分:1)
您应该做的是使用第一个活动(an activity represents a screen)中的意图传递boolean
,然后将其加载到第二个活动中。在那里,您可以阅读该值并显示或不显示对话框。
使用意图将数据从一个Activity传递到另一个Activity的更多信息
答案 1 :(得分:1)
创建Intent
以启动activity2时,使用
boolean showDialog=...
intent.putExtra("yourextraname", showDialog );
然后在activity2中你可以使用它:
boolean showDialog=getIntent().getBooleanExtra("yourextraname", false);
答案 2 :(得分:1)
屏幕2必须知道是否必须显示对话框。
因此,屏幕1必须向屏幕2发送一些数据(可能是“显示对话框”的消息,或者可能是该对话框的内容)。
如果屏幕2接收数据,则显示对话框。否则,什么都不做。
在Android中:
Intent
发送startActivity()
。如果保存了数据,请在启动之前将它们放入Intent(请参阅Intent.putExtra() doc)onCreate
中,获取getIntent()
的意图并检查其是否包含数据(请参阅Intent.hasExtra() doc)AlertDialog
答案 3 :(得分:0)
不是使用Intent Extras在两个活动之间传递数据,而是将其存储在负责管理应用程序中所有数据的Model类中(Ala MVC设计模式):
// screen 1 button click
...
@Override
void OnClick(View v)
{
Model.setScreen1Clicked(true);
}
...
// screen 2 loads
...
void onCreate(Bundle savedInstanceState)
{
if( Model.screen1Clicked() )
{
showDialog();
}
}
答案 4 :(得分:0)
我认为最安全,最简单的解决方案是使用SharedPreferences
设置标记代码示例(您应该根据文档进行检查):
// screen one
sharedPreferences.edit().putBoolean("showWindow", true).commit();
// screen two
if(sharedPreferences.getBoolean("showWindow", false)) {
sharedPreferences.edit().putBoolean("showWindow", false).commit();
// show Dialog
}