2016-09-20 12 views
9

के साथ ट्रिगर नहीं किया गया है मेरे पास एक साधारण ऐप है जिसमें केवल AutoCompleteTextView (नीचे कोड) है। मेरे पास OnItemClickListener और OnItemSelectedListener परिभाषित है। ड्रॉपडाउन सुझावों से अलग-अलग आइटमों पर क्लिक करने से onItemClick ईवेंट ट्रिगर हो जाता है। हालांकि, ब्लूटूथ कीबोर्ड के साथ, किसी दिए गए आइटम पर नेविगेट करने के लिए तीर कुंजियों का उपयोग करके onItemSelected ईवेंट ट्रिगर नहीं होता है (इस घटना के लिए लॉग नहीं देखे जाते हैं)।एंड्रॉइड ऑटोकंपलेटटेक्स्टव्यू ऑनइटम चयनकर्ता लिस्टर ब्लूटूथ कीबोर्ड

onItemSelected ईवेंट क्या ट्रिगर करता है? मैं इस धारणा के तहत था कि ड्रॉपडाउन आइटमों में से एक पर highlight ऐसा करता है, लेकिन ऐसा लगता है कि ऐसा नहीं लगता है।

यदि OnItemSelectedListener हाइलाइट किए गए आइटम के लिए सही ईवेंट श्रोता नहीं है, तो क्या कोई ऐसी आवश्यकता को पूरा करता है?

activity_main.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/activity_main" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <AutoCompleteTextView 
     android:id="@+id/autoCompleteTextView" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" /> 
</RelativeLayout> 

MainActivity.java

public class MainActivity extends Activity { 

    String[] options = {"a1", "a2", "a3", "b1", "b2", "b3", "b4", "b5"}; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     // An adapter object 
     ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.select_dialog_item, options); 

     AutoCompleteTextView autoCompleteTextView = (AutoCompleteTextView)findViewById(R.id.autoCompleteTextView); 
     autoCompleteTextView.setAdapter(adapter); 
     autoCompleteTextView.setThreshold(1); 

     // Set the listeners 
     autoCompleteTextView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
       Log.d("OnItemClick", "[AutoCompleteTextView] Item clicked"); 
      } 
     }); 
     autoCompleteTextView.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
      @Override 
      public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
       Log.d("onItemSelected", "[AutoCompleteTextView] Item selected"); 
      } 

      @Override 
      public void onNothingSelected(AdapterView<?> parent) { 
       Log.d("onNothingSelected", "[AutoCompleteTextView] Nothing here"); 
      } 
     }); 

    } 
} 
+0

क्या आपने एम्यूलेटर पर हार्डवेयर कीबोर्ड का उपयोग करने का प्रयास किया था? –

+0

@GeetChoubey मैंने एक वास्तविक ब्लूटूथ कीबोर्ड का उपयोग किया और इसे एक एंड्रॉइड फोन से कनेक्ट किया, जिस पर मेरे पास इस ऐप को तैनात किया गया है – Rakesh

उत्तर

0

आप इस के लिए onFocusChangeListener उपयोग करना चाहिए। ITemSlectedListener पर चुनिंदा विचारों के लिए है (जैसे सूचीदृश्य में)।

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