关于在an​​droid中创建新的Intent

时间:2013-07-15 12:25:38

标签: android android-intent android-button

我正在练习一些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,因为它看起来需要一些时间来打开新活动?

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

3 个答案:

答案 0 :(得分: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都会被添加到应用程序堆栈中。在你的情况下不应该发生这种情况。

答案 1 :(得分:1)

您可以访问之前打开的活动,也可以通过onBackPressed()调用;功能到以前的活动。

答案 2 :(得分:1)

如果您希望两个活动都存在且不想调用finish(),那么您可以使用

简单地将现有活动恢复到前面。
Intent i = new Intent(getActivity(), B.class);
i.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);   
getActivity().startActivity(i);