(아래 코드) 만 포함 된 간단한 앱이 있습니다. 나는 OnItemClickListener
과 OnItemSelectedListener
을 정의했다. 드롭 다운 추천에서 개별 항목을 클릭하면 onItemClick
이벤트가 트리거됩니다. 그러나 블루투스 키보드의 경우 화살표 키를 사용하여 주어진 항목으로 이동해도 onItemSelected
이벤트가 발생하지 않는 것 같습니다 (이 이벤트에는 로그가 표시되지 않음).Android AutoCompleteTextView onItemSelectedListener가 블루투스 키보드로 트리거되지 않았습니다.
이 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");
}
});
}
}
에뮬레이터에서 하드웨어 키보드를 사용해 보셨습니까? –
@GeetChoubey 나는 실제 블루투스 키보드를 사용하여이 앱을 배포 한 Android 휴대 전화에 연결했습니다. – Rakesh