2016-11-16 72 views
0

我的活动正在扩大ActionBarActivity和我们设定的onCreate()后退导航按钮:活动尚未恢复到以前的活动,而在动作条后退导航按钮点击

@Override 
protected void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState);   
    setContentView(R.layout.activity_main); 

    if(getSupportActionBar()!=null) 
    { 
     getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
    } 
} 

和背压,完成这个活动是在给定的重写方法,但它并没有移动到以前的活动

@Override 
public boolean onOptionsItemSelected(MenuItem item) 
{ 
    switch (item.getItemId()) 
    { 
     case R.id.home: 
      finish(); 
      return true; 
    } 
    return super.onOptionsItemSelected(item); 
} 

回答

5

你的id是错的。所以请将您的ID'R.id.home'更改为'android.R.id.home:'。

switch (item.getItemId()) 
{ 
    case android.R.id.home: 
     finish(); 
     return true; 
} 

试试这个。

0

请参考下面的代码

@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_next); 

getActionBar().setHomeButtonEnabled(true); 
getActionBar().setDisplayHomeAsUpEnabled(true); 


} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
switch (item.getItemId()) { 
case android.R.id.home: 

// app icon in action bar clicked; goto parent activity. 
this.finish(); 
return true; 
default: 
return super.onOptionsItemSelected(item); 
} 

}

0

你需要调用onBackPressed功能

@Override 
public boolean onOptionsItemSelected(MenuItem item) 
{ 
    switch (item.getItemId()) 
    { 
     case android.R.id.home: 
      onBackPressed(); 
      finish(); 
      return true; 
    } 
    return super.onOptionsItemSelected(item); 
} 
0

你需要重写onBackPressed方法对动作条处理后退按钮(home键)。

@Override 
public void onBackPressed() { 
    super.onBackPressed(); 
    // your code here 
    // finish(); 
} 
0

你必须设置工具栏之前获得。

@Override 
protected void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState);   
    setContentView(R.layout.activity_main); 
    Toolbar mToolBar = (Toolbar) findViewById(R.id.app_bar); 

    setSupportActionBar(mToolBar); 
    getSupportActionBar().setTitle("Some titile); 

    getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

     mToolBar.setNavigationOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      /** 
      change code here*/ 
     } 
    }); 
} 
0

负责提供适当的向上导航,你就必须:

定义清单中的父活动。

<activity 
    android:name=".MainActivity" 
    android:parentActivityName=".HomeActivity" 
    ....> 

    <meta-data 
    android:name="android.support.PARENT_ACTIVITY" 
    android:value=".HomeActivity" /> 
</activity> 

而且在MainActivity:

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
setSupportActionBar(toolbar); 
getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

应该有MainActivity的XML工具栏。然后重写onOptionsItemSelected。

@Override 
public boolean onOptionsItemSelected(MenuItem item) 
{ 
switch (item.getItemId()) 
{ 
    case android.R.id.home: 
     finish(); 
     return true; 
} 
} 

而不是使用结束(),你应该考虑使用NavUtils类的NavUtils.navigateUpFromSameTask(this)或其他这样的方法。

使用像singleTop这样的launchModes来防止重新加载父活动。

有关正确的向上导航的更多信息可以找到here