2014-04-01 50 views
8

工作我創建一個Android應用程序,我需要放回導航,這樣,當操作欄的home鍵用戶用戶點擊要移動到一個屏幕回到我app.But操作欄的家按鈕不響應點擊事件。 這是我的代碼。動作條後退按鈕不是在Android的

public static class PlaceholderFragment extends Fragment { 

    public PlaceholderFragment() { 
    } 
      @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 
     View rootView = inflater.inflate(R.layout.fragment_main, container, 
       false); 

     ActionBar actionBar = getActivity().getActionBar(); 
     actionBar.setHomeButtonEnabled(true); 
     actionBar.setDisplayHomeAsUpEnabled(true); 


     return rootView; 
    } } 

public boolean onOptionsItemSelected(MenuItem item) { 

    switch (item.getItemId()) { 
    case R.id.home: 
     Toast.makeText(getApplication(), "Back", Toast.LENGTH_LONG).show(); 

     break; 

    default: 
     break; 
    } 
    return super.onOptionsItemSelected(item); 
} 
+0

你試過從'Activity'這樣做呢? – EdmDroid

+0

是的。但它沒有響應。 –

+0

是擴大'android.support.v7.app.ActionBarActivity'或者只'android.app.Activity'你'Activity'?如果只有'Activity'你應該調用'getActionBar()',並且如果'ActionBarActivity'你應該調用'getSupportActionBar()' – EdmDroid

回答

18
case android.R.id.home: 

嘗試使用此代替case R.id.home:

+0

它的工作原理,但爲什麼呢? – Zac

4

使用android.R.id.home,而不是R.id.home

public boolean onOptionsItemSelected(MenuItem item) { 

    switch (item.getItemId()) { 
    case android.R.id.home: 
     Toast.makeText(getApplication(), "Back", Toast.LENGTH_LONG).show(); 

     break; 

    default: 
     break; 
    } 
    return super.onOptionsItemSelected(item); 
}