我使用此代码创建了一个后退按钮
getActionBar().setHomeButtonEnabled(true);
getActionBar().setDisplayHomeAsUpEnabled(true);
以便用户回到父Activity。 但现在我希望用户回到另一个Activity(而不是父活动)。我怎么能这样做?
答案 0 :(得分:2)
您必须覆盖活动中的onBackPressed()
:
@Override
public void onBackPressed()
{
super.onBackPressed();
startActivity(new Intent(ThisActivity.this, NextActivity.class));
finish();
}
注意:在此代码中
ThisActivity
是您当前的活动,NextActivity
是您在后退按钮上打开活动的点击。
答案 1 :(得分:2)
处理操作栏主页按钮按下事件并执行逻辑
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
// Your desired class
startActivity(new Intent(ThisActivity.this, NextActivity.class));
break;
}
return true;
}
答案 2 :(得分:0)
试试这种方式,
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_file, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
Intent about = new Intent(MainActivity.this,Target.class);;
startActivity(about);
finish();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
此处
中的后退图标android.R.id.home
请参阅ActionBar
答案 3 :(得分:0)
在清单中添加此项,为您的活动名称修改
<activity
android:name="SecondActivity"
android:parentActivityName="ParentActivity" >
<!-- Parent activity meta-data to support 4.0 and lower -->
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.example.app_name.A" />
</activity>
然后你应该在你的孩子或第二个活动中添加如下代码,不需要传递意图finish()
当前活动如下
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
Intent intent = new Intent(SecondActivity.this,ParentActivity.class);
startActivity(about);
finish();
return true;
default:
return super.onOptionsItemSelected(item);
}