У меня есть arraylist (mNamelist), в котором есть элементы (NameItem), и эти элементы содержат 2 переменные (String и int).У меня также есть поле ввода, где пользователь вставляет новые имена в список.
Мне нужно проверить каждый элемент в списке, и если пользователь дал имя, которого нет ни в одном из этих элементов, он можетдобавить предмет.Если он найдет совпадение, он должен дать Toast и немедленно прекратить зацикливание.
что-то, что я попробовал:
private void addItem(int position) {
/** Get user input (name) **/
textAdd = findViewById(R.id.name_input);
/** Check if that name already on a list **/
for (int i = 0; i < mNameList.size(); i++) {
/** Check namelists item, and in that item String variable named getText1 and check if it match to the name that user gave **/
if (mNameList.get(i).getText1() == textAdd.toString().trim()) {
/** If match, give toast and stop looping **/
Toast toast= Toast.makeText(getApplicationContext(),
"This name is already on a list...", Toast.LENGTH_LONG);
toast.setGravity(Gravity.TOP|Gravity.CENTER_HORIZONTAL, 0, 0);
toast.show();
break;
} else {
/** If no matches, add name to the list **/
mNameList.add(position, new NameItem(textAdd.getText().toString().trim()));
sortArrayList();
saveData();
mAdapter.notifyItemInserted(position);
textAdd.getText().clear();
}
}
}
Вскоре я понял, что проблема в том, что каждый раз, когда он не получитматч, он пытается добавить этот элемент.Что следует сделать, так это то, что ПОСЛЕ ВСЕХ элементов проверено И ни одного совпадения не найдено, только тогда он должен добавить это новое имя ОДИН РАЗ, а не в каждый цикл.Также, если он находит совпадение, он должен выдать этот тост и немедленно прекратить зацикливание.