Android应用后退按钮显示空白屏幕

时间:2012-05-28 18:40:08

标签: android android-intent

我有一个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中进行下一个活动。谢谢你的帮助。

2 个答案:

答案 0 :(得分:2)

您不应该为子活动创建新任务,我认为没有理由清除任务堆栈的顶部。如果您不希望在用户返回时显示开始活动,则可以在开始新活动后finish()将其展开。

答案 1 :(得分:1)

根据您的提及,您似乎不需要意图标记。 当您设置FLAG_ACTIVITY_CLEAR_TOP标志时,如果要启动的活动已经在运行,则其上的所有其他活动都将关闭,以便被调用的活动(已经在堆栈中运行)现在位于顶部。现在,当您按下后退按钮时,它应该转到之前运行的活动,但由于您的主要活动因该标志而关闭,因此您将看到一个空白屏幕。