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);
}
解决了你的问题?
我对 Android 有点陌生。我正在实施一个小型 android 应用程序。它有 3 页。
A页
B页
C页
页面A和页面B中有可以转到页面C的按钮。我需要知道的是,当我通过单击页面A按钮转到页面C时,我需要使用[=返回页面A 13=] 并且当我通过单击页面 B 按钮转到页面 C 时,我需要使用 onBackPressed()
这是我使用的代码。
@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);
}
解决了你的问题?