3

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

4

2 回答 2

2

您不应该为子活动创建新任务,而且我认为没有理由清除任务堆栈的顶部。如果您不希望在用户返回时显示启动活动,您可以finish()在启动新活动后简单地显示它。

于 2012-05-28T18:48:36.107 回答
1

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

于 2012-05-28T19:05:38.153 回答