2016-11-16 64 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

相關問題