2012-01-29 29 views
6

नहीं कहा जा रहा है ऐसा लगता है कि क्रिएट कॉन्टेक्स्टमेनू को बिल्कुल भी बुलाया नहीं जा रहा है। मेरी ListActivity के लिए मेरे onCreate में मेरे पास है:onCreateContextMenu को

list = getListView(); 
registerForContextMenu(list); 

(मैं जानता हूँ कि यह अनावश्यक है, और मैं सिर्फ getListView उत्तीर्ण कर ली है() एक ही परिणाम के साथ)।

यहां मेरा ऑनक्रेटऑनटेक्स्टमेनू है;

@Override 
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { 
    super.onCreateContextMenu(menu, v, menuInfo); 
    Log.d("LM", "onCreateContextMenu"); 

    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.context_landmarks, menu); 
} 

लॉग कभी उत्पन्न नहीं होता है। क्या किसी के पास कोई सुझाव नहीं है?

+0

बस इसे दूसरों के साथ पास करें, मैं इसे देखने के लिए ItemLongClickListener पर भी जोड़ रहा था। यह अब मुझे समझ में आता है कि यह क्यों काम नहीं करेगा। – spuppett

उत्तर

8

मेरा विचार सूची दृश्य को घटना में अवरुद्ध कर रहा है और संदर्भ में नहीं जा रहा है मेन्यू व्यवहार। यह मुझे समझ में आता है क्योंकि OnItemLongClickListener व्यवहार संदर्भ मेन्यू के ओवरलैप करता है। यदि संदर्भ नहीं है कि यह संदर्भमेनू और OnItemLongClickListener के बीच कैसे पहचान सकता है?

+0

यही मुझे भी मिला। यह दिखाने के लिए कोड पर वापस जाने के बाद कि लंबा क्लिक काम कर रहा था, उसने मुझे मारा। – spuppett

+0

हाँ .. यह काम करता है !! धन्यवाद। – Shyam

-2

आपको में registerForContextMenu(View view) विधि को कॉल करना होगा।

0

रजिस्टर फॉरकॉन्टेक्स्टमेनू (सूची) का पता लगाने का प्रयास करें; ऑनक्रेट विधि में कॉल करने के लिए आपकी आखिरी विधि के रूप में। मेरा मतलब है कि सूची एडाप्टर को पहले नहीं कहा जाने के बाद इस विधि को शॉल कहा जाना चाहिए।

0

बस को दूर youwidget.setonLongclicklistener और yourwidget.setLongClickable

और फिर onCreate() में registerforContextmenu(yourwidget) जोड़ने तो इस्तेमाल किया विजेट के अनुसार कोड जोड़ें।

आशा है कि यह सहायक होगा।

0

मेरी समस्या लुल्मिया के जवाब से बहुत करीबी थी, जिसने मुझे सही दिशा में इंगित किया। मैंने कई बार संदर्भ मेनू किया है और अब तक इस तरह से कभी भी इसमें भाग नहीं लिया है।

मैं Adapter.getView(...) में कॉल कर रहा था जब यह संदर्भ मेनू के साथ विवाद से बचने के लिए ListView.setOnItemClickListener(listener) होना चाहिए।

सामान्य रूप से, मुझे यकीन है कि OnItemClickListener अधिक अनुकूलित है, खासकर जब से केवल एक श्रोता उदाहरण का उपयोग हर बार एक दृश्य बनाया या पुनर्नवीनीकरण करने के बजाय किया जाता है।

0

मुझे लगता है कि समस्या थी और केवल

  1. कि क्योंकि resp सुनिश्चित करने के द्वारा इसे हल कर सकते हैं। गतिविधि दृश्यों को पंजीकृत करती है, वही गतिविधि तब भी क्रिएट कॉन्टेक्स्टमेनू() पर ओवरराइड करनी चाहिए; एक टुकड़े में ऐसा करने से
  2. काम नहीं करेगा क्योंकि मैंने एडैप्टर बनाने और इसके साथ पंजीकरण करने के लिए एक अतिरिक्त टुकड़ा का उपयोग किया है, न कि गतिविधि को कॉन्टैक्ट इटैम चयन() पर ओवरराइड करना चाहिए।

मैं कार्ड एक मेनू पृष्ठभूमि के लिए सब कुछ फीका नहीं करता है अप पॉपिंग के अधिकार के मार्जिन पर एक यूट्यूब शैली बटन के पक्ष में देर तक दबाए रखने पॉपअप को छोड़ने पर विचार कर रहा हूँ --- खोज उस के लिए अवधि क्या है btw?