2016-09-20 74 views
9

Sadece bir AutoCompleteTextView (kod aşağı) içeren basit bir uygulama var. Tanımlanmış OnItemClickListener ve OnItemSelectedListener var. Açılan önerilerden tek tek öğeleri tıklamak onItemClick etkinliğini tetikler. Ancak, bir bluetooth klavye ile, belirli bir öğeye gitmek için ok tuşlarını kullanarak onItemSelected olayını tetiklemiyor gibi görünüyor (günlükler bu olay için görülmüyor).Android AutoCompleteTextView onItemSelectedListener bir bluetooth klavye ile tetiklenmedi

Bu onItemSelected olayını tetikleyen nedir? Açılan öğelerin birinde highlight'un yaptığı izlenim altındaydım, ancak durum böyle görünmüyor.

Vurgulanan öğe için OnItemSelectedListener doğru olay dinleyicisi değilse, bu gereksinimi karşılayan var mı?

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

Emülatördeki donanım klavyesini kullanmayı denediniz mi? –

+0

@GeetChoubey Gerçek bir bluetooth klavyeyi kullandım ve bu uygulamayı dağıtdığım bir Android telefona bağladım. – Rakesh

cevap