2012-11-14 22 views
5

मैंने इस लेख को one जैसे कई लेख देखे हैं जो वर्णन करते हैं कि एक बटन के साथ एक लंबी प्रेस घटना को कैसे संभालना है। मैं इन दिशाओं का पालन कर सकता हूं लेकिन मैं सोच रहा हूं कि ऐसा करना संभव है जैसे मैंने एक क्लिक संभाला।लांग प्रेस बटन इवेंट हैंडलर

<Button 
    android:id="@+id/btn_NextLift" 
    ... 
    android:onClick="btn_NextLiftClick" /> 

तो जैसे कोड में: जिस तरह से मैं एक क्लिक संभाला जैसे एक्सएमएल में हैंडलर परिभाषित करने के लिए था

public void btn_NextLiftClick(View vw_Current) 
    {...} 

मैं एक्सएमएल में बूलियन संपत्ति longClickable क्यों दिखाई देता है, लेकिन मैं डॉन ' टी इवेंट हैंडलर को परिभाषित करने के लिए कहां देखें ... ???

TIA जेबी

उत्तर

17

आप XML के माध्यम से ऐसा नहीं कर सकते। इसके बजाए, उपयोग करें:

Button button = (Button) findViewById(R.id.btn_NextLift); 

button.setOnLongClickListener(new OnLongClickListener() { 
     @Override 
     public boolean onLongClick(View v) { 
      // TODO Auto-generated method stub 
      return true; 
     } 
    }); 

सुनिश्चित करें कि यह कोड setContentView() के बाद आता है।

इसके अलावा, सुनिश्चित करें कि longClickable संपत्ति सत्य पर सेट है।

+0

यह निराशाजनक है। मैं निश्चित रूप से setContentView के बाद कोड सेट करता हूं लेकिन मेरा बटन अभी भी शून्य हो जाता है इसलिए मुझे NullRef अपवाद मिलता है। – GPGVM

+0

यदि मैं एक्सएमएल परिभाषित क्लिक हैंडलर में लांगक्लिक हैंडलर जोड़ता हूं तो यह काम करता है। ऐसा लगता है जैसे मेरा बटन छुपा रहा है और जब तक यह कोई ईवेंट नहीं उठाता तब तक नहीं पाया जा सकता ??? – GPGVM

+0

कोड शामिल करने के लिए अपने प्रश्न को संपादित करें। –

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