2012-05-01 16 views
5

संभव डुप्लिकेट निष्पादित करें:
public boolean onKey() called twice?एंड्रॉयड View.OnKeyListener:, एक बार क्लिक करें दो बार

यहाँ मेरी कोड

public class TestKeyActivity extends Activity { 

private int i=1; 
private ScrollView sv; 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 


    sv=(ScrollView) this.findViewById(R.id.read_scrollView); 

    sv.setOnKeyListener(new View.OnKeyListener() { 

     @Override 
     public boolean onKey(View v, int keyCode, KeyEvent event) { 
      if (keyCode == KeyEvent.KEYCODE_DPAD_RIGHT) { 

     Toast.makeText(TestKeyActivity.this, "what is wrong!!!!"+(i++), 2).show(); 
      return true; 
      } 
      return false; 
     } 
    }); 
    } 
} 

मैं वह एंड्रॉयड एमुलेटर और ग्रहण का उपयोग है, मुझे नहीं पता क्यों, लेकिन जब मैं एक बार कुंजी पर क्लिक करता हूं, तो टोस्ट के कोड कोड दो बार निष्पादित होगा। क्या मेरे कोड में कुछ गड़बड़ है?

उत्तर

11

मैंने अभी एक बहुत ही समान प्रश्न (here) का उत्तर दिया है। समस्या यह है कि आप KeyEvent.ACTION_DOWN और KeyEvent.ACTION_UP पर सक्रिय कर रहे हैं। KeyEvent.getAction() == KeyEvent.ACTION_UP

+0

हां! यह समान है लेकिन समान नहीं है। मेरी समस्या ऑनके लिस्टनर है, इसमें KeyEvent.ACTION_DOWN और KeyEvent.ACTION_UP इस प्रकार की समस्या नहीं होगी। और धन्यवाद डॉन। आपके पास ऐसा स्कोर है, अच्छा! – lok4u

+0

क्या मैं इसे कोड के साथ नियंत्रित कर सकता हूं: यदि मैं कुंजी पर क्लिक करता हूं और 1 सेकंड में यह कुंजी लॉक हो जाएगी? क्या वैसे भी – lok4u

+0

हम्मम्म आप क्या हासिल करने की कोशिश कर रहे हैं? – dmon

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

  • कोई संबंधित समस्या नहीं^_^