2012-12-25 19 views
6

मेरी क्रिसमस और शुभ छुट्टियां सभी को जोड़ना!शीर्षक पट्टी छवि पर क्लिक श्रोता

मैं डिफ़ॉल्ट शीर्षक पट्टी के बाईं ओर दिखाई देने वाली छवि आइकन पर श्रोता स्थापित करने का प्रयास कर रहा हूं, लेकिन अब तक कोई भाग्य नहीं है।

@Override public void onCreate(Bundle savedInstanceState) { 
    requestWindowFeature(Window.FEATURE_LEFT_ICON); 
    super.onCreate(savedInstanceState); 
    findViewById(Window.FEATURE_LEFT_ICON).setOnClickListener(new OnClickListener() { 
     @Override public void onClick(View v) { 
      System.out.println("It works!"); 
     } 
    }); 
} 

कोई सुझाव:

यहाँ मेरी गतिविधि के onCreate है? मैं उम्मीद नहीं कर रहा हूं कि "यह संभव नहीं है" :)

+2

आप एक ActionBar का प्रयोग क्यों नहीं करते? –

+0

क्या आप [इस टाइटलबार] (http://sree.cc/wp-content/uploads/2011/02/image1.jpg) के बारे में बात कर रहे हैं? यदि ऐसा है, तो आपको एक्शनबार को कार्यान्वित करने में देखना चाहिए, शीर्षक बार अब UI idiom के रूप में बहुत अधिक बहिष्कृत है। – dmon

+0

हां, मुझे लगता है कि आप एक्शनबार का उपयोग करेंगे और अपनी गतिविधि के 'ऑनऑप्शन इटैम सेलेक्टेड()' विधि को लागू करेंगे। मेरा मानना ​​है कि एक्शनबार पर ऐप आइकन की आईडी 'android.R.id.home' – Karakuri

उत्तर

4

बाएं आइकन के लिए एक आईडी प्रतीत नहीं होता है, हालांकि क्लासिक टाइटल बार के लिए, एक आईडी उपलब्ध है: android.R.id.title यहां है इस आईडी का उपयोग कर नमूना गतिविधि। requestWindowFeature(Window.FEATURE_LEFT_ICON); विषय के बावजूद क्लासिक टाइटल बार को मजबूर होना चाहिए।

public class MainActivity extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    requestWindowFeature(Window.FEATURE_LEFT_ICON); 
    setContentView(R.layout.activity_main); 
    getWindow().setFeatureDrawableResource(Window.FEATURE_LEFT_ICON,R.drawable.ic_launcher); 
    View v = findViewById (android.R.id.title); 
    v.setClickable(true); 
    v.setOnClickListener(new OnClickListener() { 
     @Override public void onClick(View v) { 
      Toast.makeText(MainActivity.this, "Works!", Toast.LENGTH_SHORT).show(); 
     } 
    }); 
} 
} 

मूलतः, यह क्या करता है, यह पाता शीर्षक पट्टी (android.R.id.title) की आईडी तो यह करने के लिए एक onClickListener प्रदान करती है।

यह ActionBar एस के साथ काम करता है, केवल क्लासिक विंडो शीर्षक बार।

+0

क्या आप वास्तव में इसे फ़ोन पर चलाने का प्रयास करते थे? मुझे अपने गैलेक्सी एस 3 के साथ एक नल पॉइंटर मिल रहा है। –

+0

हां, 4.0.4 पर। आपको थीम क्लासिक थीम की आवश्यकता है, जैसे Theme.Black/Theme.Light। नए होलो थीम एक्शनबार का उपयोग करते हैं, जो कि अन्य लोगों की तरह एक अलग कार्यान्वयन का उपयोग करते हैं। –

1

आपको एक्शनबार का उपयोग करना चाहिए। 3.0 से कम एंड्रॉइड संस्करणों के लिए ActionBarSherlock का उपयोग करें। आइकन क्लिक करने योग्य बनाने के लिए, एक्शनबार एपीआई डॉक्स देखें (नीचे लिंक देखें)। यह बहुत आसान है, आप केवल व्यवहार को सक्रिय करते हैं और फिर यह एक विशेष आइटम-आईडी के साथ मेनू-आइटम की तरह काम करता है।

संबंधित मुद्दे