2012-11-29 17 views
4

設置以下使主頁圖標顯示按下狀態:在動作條主頁圖標設置OnClickListener使得圖標鬆按下狀態

actionBar.setHomeButtonEnabled(true); 

但是,設置OnClickListener家圖標停止表示加壓狀態後:

ImageView iconImage = (ImageView) activity.findViewById(android.R.id.home); 
iconImage.setOnClickListener(new android.view.View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
    } 
}); 

關於如何防止禁用按下狀態的任何想法?

回答

8

要處理的home圖標點擊,你並不需要設置onClickListener,你需要做以下..

public boolean onOptionsItemSelected(MenuItem item) { 
    if(item.getItemId() == android.R.id.home) { //app icon in action bar clicked; go back 
     //do something 
     return true; 
    } 

    return super.onOptionsItemSelected(item); 
} 
+0

但我選擇了做這種方式。任何想法如何使ImageView仍然顯示按下狀態? –

+0

我選擇偵聽器的方式,因爲它更直接,因爲onOptionsItemSelected從未被調用過。 –

+1

不幸的是我不知道如何顯示新聞狀態..但上述方法是在文檔中提到的方式..http://developer.android.com/guide/topics/ui/actionbar.html#Home – Nermeen

0
public class MainActivity extends Activity { 

    Fragment fr; 
     FragmentManager fm; 
     Button btn1,btn2; 

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

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

     btn1=(Button)findViewById(R.id.button1); 
     btn2=(Button)findViewById(R.id.button2); 
     fm = getFragmentManager(); 


     btn1.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 

        fr = new frag22(); 
        FragmentTransaction ft = fm.beginTransaction(); 
        ft.replace(R.id.fragment, fr); 
        ft.commit(); 

      } 
     }); 
    } 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 

    getMenuInflater().inflate(R.menu.main, menu); 
    // TODO Auto-generated method stub 
    return super.onCreateOptionsMenu(menu); 
} 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     // TODO Auto-generated method stub 

      if(item.getItemId() == android.R.id.home) { //app icon in action bar clicked; go back 
       //do something 

       Toast.makeText(getApplicationContext(), "set click", Toast.LENGTH_LONG).show(); 
       return true; 
      } 


     return super.onOptionsItemSelected(item); 
    } 
} 
+0

這項工作我表示敬酒。點擊圖標。 –