Ich mache eine Wörterbuch-App. Ich habe eine AutoCompleteTextView und eine große Liste von Strings. Wenn ich ArrayAdapter auf AutoCompleteTextView setze, ohne es zu verkleinern, bleibt es hängen. Deshalb habe ich beschlossen, Adapter mit TextWatcher einzustellen. Text in textView ändert sich, textView Adapter ändert sich. Aber wenn ich versuche, das ausgewählte Element mit onitemClickListener auszuwählen, gibt es indexoutofboundsException zurück, da textWatcher vor onclickListener- und Adapteränderungen arbeitet. Gibt es eine Möglichkeit zu überprüfen, ob ein Element in TextWatcher geklickt wird? Danke für Ihre HilfeÜberprüfen, ob setOnItemClickListener angeklickt ist oder nicht
final AutoCompleteTextView textView = (AutoCompleteTextView) rootView.findViewById(R.id.autoCompleteTextView1);
textView.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if(s.length() != 0){
db.openDataBase();
wl = db.getWordList(s.toString());
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(),android.R.layout.simple_dropdown_item_1line, wl.getWordList());
textView.setAdapter(adapter);
}
}
textView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
if(parent.getItemAtPosition(position) != null);
Log.i("Debug",parent.getItemAtPosition(position)+"");
}
});
Hier ist der Fehler 05-30 10:30:14.789: E/AndroidRuntime(10370): FATAL EXCEPTION: main 05-30 10:30:14.789: E/AndroidRuntime(10370): Process: com.alynurly.maralsozluk, PID: 10370 05-30 10:30:14.789: E/AndroidRuntime(10370): java.lang.IndexOutOfBoundsException: Invalid index 5, size is 4 05-30 10:30:14.789: E/AndroidRuntime(10370): at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255) 05-30 10:30:14.789: E/AndroidRuntime(10370): at java.util.ArrayList.get(ArrayList.java:308) 05-30 10:30:14.789: E/AndroidRuntime(10370): at android.widget.ArrayAdapter.getItem(ArrayAdapter.java:337) 05-30 10:30:14.789: E/AndroidRuntime(10370): at android.widget.AdapterView.getItemAtPosition(AdapterView.java:764) 05-30 10:30:14.789: E/AndroidRuntime(10370): at com.alynurly.maralsozluk.MainActivity$PlaceholderFragment$1.onItemClick(MainActivity.java:92) 05-30 10:30:14.789: E/AndroidRuntime(10370): at android.widget.AutoCompleteTextView.performCompletion(AutoCompleteTextView.java:902) 05-30 10:30:14.789: E/AndroidRuntime(10370): at android.widget.AutoCompleteTextView.access$500(AutoCompleteTextView.java:91) 05-30 10:30:14.789: E/AndroidRuntime(10370): at android.widget.AutoCompleteTextView$DropDownItemClickListener.onItemClick(AutoCompleteTextView.java:1192) 05-30 10:30:14.789: E/AndroidRuntime(10370): at android.widget.AdapterView.performItemClick(AdapterView.java:299) 05-30 10:30:14.789: E/AndroidRuntime(10370): at android.widget.AbsListView.performItemClick(AbsListView.java:1113) 05-30 10:30:14.789: E/AndroidRuntime(10370): at android.widget.AbsListView$PerformClick.run(AbsListView.java:2904) 05-30 10:30:14.789: E/AndroidRuntime(10370): at android.widget.AbsListView$3.run(AbsListView.java:3638) 05-30 10:30:14.789: E/AndroidRuntime(10370): at android.os.Handler.handleCallback(Handler.java:733) 05-30 10:30:14.789: E/AndroidRuntime(10370): at android.os.Handler.dispatchMessage(Handler.java:95) 05-30 10:30:14.789: E/AndroidRuntime(10370): at android.os.Looper.loop(Looper.java:136) 05-30 10:30:14.789: E/AndroidRuntime(10370): at android.app.ActivityThread.main(ActivityThread.java:5021) 05-30 10:30:14.789: E/AndroidRuntime(10370): at java.lang.reflect.Method.invokeNative(Native Method) 05-30 10:30:14.789: E/AndroidRuntime(10370): at java.lang.reflect.Method.invoke(Method.java:515) 05-30 10:30:14.789: E/AndroidRuntime(10370): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:827) 05-30 10:30:14.789: E/AndroidRuntime(10370): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:643) 05-30 10:30:14.789: E/AndroidRuntime(10370): at dalvik.system.NativeStart.main(Native Method)
oder gibt es eine andere Möglichkeit, diesen Adapter ohne Einfrieren der App zu setzen? Hilf mir – alynurly
Adapteränderungen bedeuten? Veröffentlichen Sie den vollständigen Stacktrace. –