2015-05-26 11 views
11

मैं अपने आवेदन में सभी आइकन के लिए एक्शनबार में एप्लिकेशन आइकन जोड़ना चाहता हूं और आइकन क्लिक पर, मैं अपने एप्लिकेशन के होम पेज पर नेविगेट करना चाहता हूं।SetHomeButtonEnabled काम नहीं कर रहा है लेकिन setDisplayHomeAsUpEnabled काम कर रहा है

मैं onCreate

ActionBar actionBar = getSupportActionBar(); 
actionBar.setLogo(R.drawable.ic_launcher); 
actionBar.setDisplayUseLogoEnabled(true); 
actionBar.setDisplayShowHomeEnabled(true); 
actionBar.setHomeButtonEnabled(true); 

में निम्न कोड के साथ की कोशिश की अब आवेदन आइकन ActionBar में आ रहा है, लेकिन यह क्लिक करने पर, onOptionsItemSelected नहीं बुलाया हो रही है। लेकिन अगर कार्रवाई के बजाय actionBar.setDisplayHomeAsUpEnabled (true) का उपयोग करें Bar.setHomeButtonEnabled (true), onOptionsItem चयनित आइटम item.getItemId() के साथ बुलाया जा रहा है। नीचे दिए कोड स्निपेट है

ActionBar actionBar = getSupportActionBar(); 
actionBar.setLogo(R.drawable.ic_launcher); 
actionBar.setDisplayUseLogoEnabled(true); 
actionBar.setDisplayShowHomeEnabled(true); 
actionBar.setDisplayHomeAsUpEnabled(true); 

प्रलेखन दोनों setDisplayHomeAsUpEnabled और setHomeButtonEnabled का उपयोग कर कहते हैं, onOptionsItemSelected बुलाया जाएगा और फर्क सिर्फ इतना ऊपर तीर है। मुझे एक्शनबार में ऊपर तीर की आवश्यकता नहीं है, मुझे केवल एप्लिकेशन आइकन की आवश्यकता है। वह कैसे किया जा सकता है?

मेरे minSdkVersion 14 और targetSdkVersion 21.

उत्तर

14

से http://developer.android.com/reference/android/app/ActionBar.html#setHomeAsUpIndicator(int)

आप उपयोग कर सकते हैं:

actionBar.setHomeAsUpIndicator(R.drawable.ic_launcher); 
actionBar.setDisplayShowHomeAsUpEnabled(true); 

और

+0

आपको बहुत बहुत धन्यवाद ... यही वह था जो मैं चाहता था –

+0

कोई विचार क्यों '' 'सेट होमबटन 'सक्षम'' 'काम नहीं कर रहा है? –

+0

@JiechaoWang आपका उपयोग केस क्या है? –

2

आप इस का उपयोग कर सकते अपने आइकन के साथ वापस तीर बदलना चाहिए :

Toolbar toolbar = (Toolbar) findViewById(R.id.myToolbar); 
toolbar.setNavigationIcon(R.drawable.ic_back); 
setSupportActionBar(toolbar); 
toolbar.setNavigationOnClickListener(new View.OnClickListener(){ 
    @Override 
    public void onClick(View view){ 
    finish(); 
    } 
}); 
संबंधित मुद्दे