Ich habe AutoCmpleteTextView und RecyclerView in meiner App. Wenn ich ein Element aus der AutCompleteTextView gesucht und ausgewählt habe, wird es zur RecyclerView hinzugefügt. Es hat sehr gut funktioniert. Aber ich möchte wissen, ob das ausgewählte Element bereits in der RecyclerView vorhanden ist. Vermeiden Sie doppelte Artikel.Überprüfen Sie, ob das Element, das aus der AutoCompleteTextView ausgewählt wurde, bereits in der RecyclerView vorhanden ist
Dies ist mein Code.
final AutoCompleteTextView acTextView = (AutoCompleteTextView) findViewById(R.id.autoCompleteTextView);
adapter = new MaterialSuggestionAdapter(getApplicationContext());
acTextView.setAdapter(adapter);
acTextView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Product result = adapter.getItem(position);
String newName = result.getMatName().toString();
String newQty = String.valueOf(result.getMatQuantity());
String newPCode = result.getMatNo().toString();
String newPlant = result.getMatPlant().toString();
if (!newName.equals("")) {
if (myRecyclerViewAdapter.getItemCount() > 0) {
if (newName != myRecyclerViewAdapter.getItemName(position).toString()) {
myRecyclerViewAdapter.add(1, newName, newQty, newPCode, newPlant);
} else {
Toast.makeText(getApplicationContext(), "Product Already in the List", Toast.LENGTH_SHORT).show();
}
} else {
myRecyclerViewAdapter.add(0, newName, newQty, newPCode, newPlant);
}
} else {
Toast.makeText(getApplicationContext(), "Invalied Item!", Toast.LENGTH_SHORT).show();
}
acTextView.setText("");
}
});
}
Wenn ich Position zu in dieser Zeile geändert if (newName! = MyRecyclerViewAdapter.getItemName (Position) .toString())
LogCat geben Sie mir diesen Fehler
04-06 16:08:01.681 25361-25361/com.ceatkelanisrilanka.dushanmadushanka.ceat E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.ceatkelanisrilanka.dushanmadushanka.ceat, PID: 25361
java.lang.IndexOutOfBoundsException: Invalid index 1, size is 1
at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255)
at java.util.ArrayList.get(ArrayList.java:308)
at com.ceatkelanisrilanka.dushanmadushanka.ceat.adapters.SelectItemAdapter.getItemName(SelectItemAdapter.java:54)
at com.ceatkelanisrilanka.dushanmadushanka.ceat.SelectItem$2.onItemClick(SelectItem.java:166)
at android.widget.AutoCompleteTextView.performCompletion(AutoCompleteTextView.java:905)
at android.widget.AutoCompleteTextView.access$500(AutoCompleteTextView.java:90)
at android.widget.AutoCompleteTextView$DropDownItemClickListener.onItemClick(AutoCompleteTextView.java:1201)
at android.widget.AdapterView.performItemClick(AdapterView.java:305)
at android.widget.AbsListView.performItemClick(AbsListView.java:1146)
at android.widget.AbsListView$PerformClick.run(AbsListView.java:3053)
at android.widget.AbsListView$3.run(AbsListView.java:3860)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
Sie haben nur ein Element in recylerview, das ist, warum Sie diesen Fehler bekommen. –
Ok.thankz.aber wie finden Sie den Artikel ist bereits in der Recyclerview oder nicht? Geben Sie einen Toast, der Artikel ist bereits in der Liste –
Haben Sie meine Antwort überprüft? –