我有一个Android应用程序,以简单的屏幕和“开始”按钮开始。用户单击该按钮后,它会从URL中检索代码并将其放入列表中。如果您从列表视图中按回来,它将显示空白屏幕而不是带有“开始”按钮的屏幕。所有代码都在onCreate语句中。如果我错过了明显这是我的第一个真正的Android应用程序(除了Hello Android教程),请原谅。如果有帮助,下面是第一个活动中的代码。
public class Main extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button next = (Button) findViewById(R.id.butQR);
next.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
setContentView(R.layout.listplaceholder);
Intent myIntent = new Intent(view.getContext(), NewListActivity.class);
myIntent.putExtra("race_id", view.getId());
myIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
myIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(myIntent);
}
});
}
更新:我使用setContentView(R.layout.listplaceholder);按钮单击并在新的oncreate中进行下一个活动。谢谢你的帮助。
答案 0 :(得分:2)
您不应该为子活动创建新任务,我认为没有理由清除任务堆栈的顶部。如果您不希望在用户返回时显示开始活动,则可以在开始新活动后finish()
将其展开。
答案 1 :(得分:1)
根据您的提及,您似乎不需要意图标记。
当您设置FLAG_ACTIVITY_CLEAR_TOP
标志时,如果要启动的活动已经在运行,则其上的所有其他活动都将关闭,以便被调用的活动(已经在堆栈中运行)现在位于顶部。现在,当您按下后退按钮时,它应该转到之前运行的活动,但由于您的主要活动因该标志而关闭,因此您将看到一个空白屏幕。