如何在单击按钮时交换两个完整活动,以及何时应用程序再次启动,然后显示交换更改

时间:2017-05-05 06:35:30

标签: java android android-activity

基本上,我有两个活动

1。FirstActivity.java

2。SecondActivity.java

在这个SecondActivity.java中我有一个按钮,可以在这两个活动之间进行交换。所以,当我按下那个按钮时,SecondActivity.java活动与FirstActivity.java交换,当我关闭时我的应用程序并重新启动我的应用程序显示交换操作意味着SecondActivity.java活动与FirstActivity.java成功交换。

所以,伙计们,如果有人知道我该怎么做,那么请给我一些实现这种功能的想法。

3 个答案:

答案 0 :(得分:1)

您需要正确终止您的申请。

@Override
public void onBackPressed() {

        AlertDialog.Builder al=new AlertDialog.Builder(this);
        al.setTitle(R.string.app_name);
        al.setMessage(R.string.wanna_exit);
        al.setIcon(R.drawable.back);
        al.setCancelable(false);
        al.setPositiveButton(R.string.yea,new DialogInterface.OnClickListener(){public void onClick(DialogInterface id, int s){
            moveTaskToBack(true);
            getIntent().removeExtra("isInit");  // remove if you're using any extra
            android.os.Process.killProcess(android.os.Process.myPid());
            finish();
            System.exit(1);
        }});
        al.setNegativeButton(R.string.nope,new DialogInterface.OnClickListener(){public void onClick(DialogInterface id, int s){id.cancel();}});
        al.create().show();
 }

如果您想从一项活动转移到另一项活动,请使用finish()

@Override
public void onBackPressed() {
     Intent intent=new Intent(getApplicationContext(),FirstActivity.class);
     startActivity(intent);
     finish();
}

答案 1 :(得分:1)

在SecondActivity中,在onCreate()中添加以下行:

SharedPreference pref = getSharedPreferences("yourPref", MODE_PRIVATE);
String activityName = pref.getString("activityName",null);

if(activityName != null && activityName.equals("FirstActivity")){
 startActivity(new Intent(this,FirstActivity.class));
 finish();
}

在SecondActivity.java类的按钮的clicklistner中添加以下行:

 SharedPreference pref = getSharedPreferences("yourPref", MODE_PRIVATE);
 SharedPreferences.Editor editor = pref.edit();
 editor.putString("activityName", "FirstActivity");
 editor.commit();

在FirstActivity.java类的按钮的clicklistener中添加以下行:

 SharedPreference pref = getSharedPreferences("yourPref", MODE_PRIVATE);
 SharedPreferences.Editor editor = pref.edit();
 editor.putString("activityName", "SecondActivity");
 editor.commit();

答案 2 :(得分:0)

让我们在这里订购一些。 "切换"活动是一种非常混乱的表达方式。 我建议你,当用户点击其中一个活动的按钮时,你会在Intent中保存一个数字。

  

例如:

     

0 - 打开第一个活动。

     

1 - 打开第二项活动。

我猜你的应用是从第一个活动开始的。

首次运行应用程序时,从Inent中检索此号码。 如果它的0什么都不做。 如果是1 - 使用:startActivity(new Intent(FirstActivity.this, SecondActivity.class))开始第二项活动,请立即使用finish()关闭FirstActivity