2014-10-26 98 views
0

當我創建一個活動時,它會自動添加回操作欄中的主要活動選項。它看起來像那些是這樣做的功能:操作欄中的Android後退選項

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
// Inflate the menu; this adds items to the action bar if it is present. 
getMenuInflater().inflate(R.menu.app_settings, menu); 
return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle action bar item clicks here. The action bar will 
    // automatically handle clicks on the Home/Up button, so long 
    // as you specify a parent activity in AndroidManifest.xml. 
    int id = item.getItemId(); 
    if (id == R.id.action_settings) { 
     return true; 
    } 
    return super.onOptionsItemSelected(item); 
} 

有沒有辦法讓它回去使用finish()?現在看起來它重置了一些已保存的值,我想保留它們。當我嘗試使用finish()時,它沒有這樣做,但我不知道如何在操作欄中使用它。

回答

2

這是簡單,它完美的作品:

public class BackButtonExample extends Activity { 
    @SuppressLint("NewApi") 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.duahs); 

     ActionBar bar = getActionBar(); 
     bar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#0B4C5F"))); 
     bar.setDisplayHomeAsUpEnabled(true); 
    } 

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

試試這個

@Override 
     public boolean onOptionsItemSelected(MenuItem item) { 
       if(item.getItemId()==android.R.id.home { 
         finish(); 
       return true; } 
      else{ 
       return super.onOptionsItemSelected(item); 
       } 
    }