0

我正在练习一些android开发。我在打开第二个活动的主要活动中创建了一个按钮:

我将此代码用于按钮:

 this.detailsBtn = (Button) findViewById(R.id.details_btn);
    this.detailsBtn.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
            Intent k = new Intent(arg0.getContext(), DetailsActivity.class); 
            startActivity(k);
        }
    });

此代码在打开第二个活动时正常工作。我还在 DetailsActivity 中添加了一个返回主要活动的按钮。

this.mainListBtn = (Button) findViewById(R.id.main_list_btn);
    this.mainListBtn.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
            Intent k = new Intent(arg0.getContext(), MainActivity.class); 
            startActivity(k);
        }
    });

这也可以正常工作。我的问题是我是否应该在每次按下任何按钮时创建新的 Intent,因为它看起来需要一些时间来打开新活动?

有没有办法访问已经创建的意图而不是重新创建它?

4

3 回答 3

2

finish()只调用DetailsActivity

this.mainListBtn = (Button) findViewById(R.id.main_list_btn);
    this.mainListBtn.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
           finish();
        }
    });

这也可以正常工作。我的问题是我是否应该在每次按下任何按钮时创建新的 Intent,因为它看起来需要一些时间来打开新活动?

您当前的应用程序运行良好,我同意。但是会发生的是,每次按下按钮时,新的 Activity 都会被添加到应用程序堆栈中。在你的情况下不应该发生这种情况。

于 2013-07-15T12:29:03.797 回答
1

您可以访问以前打开的活动,也可以通过 onBackPressed() 调用;作用于以前的活动。

于 2013-07-15T12:30:12.933 回答
1

如果您希望两个活动都存在并且不想调用finish(),那么您可以简单地将现有活动带回前面使用

Intent i = new Intent(getActivity(), B.class);
i.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);   
getActivity().startActivity(i);
于 2013-07-15T12:35:33.297 回答