onBackPressed 用于 Android 中一页中的两个单独的页面

onBackPressed for two seperate pages from one page in Android

我对 Android 有点陌生。我正在实施一个小型 android 应用程序。它有 3 页。

A页

B页

C页

页面A和页面B中有可以转到页面C的按钮。我需要知道的是,当我通过单击页面A按钮转到页面C时,我需要使用[=返回页面A 13=] 并且当我通过单击页面 B 按钮转到页面 C 时,我需要使用 onBackPressed()

返回页面 B

这是我使用的代码。

@Override
    public void onBackPressed()
    {
        super.onBackPressed();
        startActivity(new Intent(C.this, A.class));
        finish();

    }

据我所知,我不能在同一个 class 中调用两个 onBackPressed()

那么,我该怎么办?

从 A/B

开始 Activity C
 btnFromC.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(getApplicationContext(), C.class);
                finish();
                startActivity(intent);
            }
        });

从Activity开始,A和B这样开始c:

startActivity(new Intent(A or B.this, c.class));

在你的 class c

@Override
public void onBackPressed()
{
    super.onBackPressed();        
    finish();

}

试试这个,这不是最佳答案,但它有效:

Activity答:

btnFromC.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(getApplicationContext(), C.class);
                intent.putExtra("comeFrom", 0);
                startActivity(intent);
            }
        });

Activity乙:

btnFromC.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(getApplicationContext(), C.class);
                intent.putExtra("comeFrom", 1);
                startActivity(intent);
            }
        });

Activity C:

 int comeFrom;
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
         Intent intent = this.getIntent();
         comeFrom = intent.getIntExtra("comeFrom", 0);
}

@Override
    public void onBackPressed()
    {
        super.onBackPressed();
  Intent intent = null;

       switch(comeFrom){
      case 0:
        intent = new Intent(getApplicationContext(), A.class);
        break;
      case 1:
        intent = new Intent(getApplicationContext(), B.class);
        break;
       }
       startActivity(intent);

    }

解决了你的问题?