Мне нужно создать приложение в android с базой данных. В этой базе данных у меня есть предопределенный список продуктов.
Теперь дело в том, что мой ap должен предложить пользователю возможность представить в этом списке некоторые другие продукты, которых нет в списке.
С этой целью я создал текстовое представление автозаполнения, в котором я представляю новый продукт, и я беру текст для автозаполнения, и я должен записать его в базе данных
Теперь моя проблема заключается в том, что когда я показываю продукты, которые я представил в базе данных, тост-текст, который я использую для отображения того, что у меня есть в базе данных, не показывает мне ничего рядом с "продуктом......".
Теперь, может быть, потому что, когда я пытаюсь получить текст из автозаполнения, я ничего не получаю взамен?
Вот как я прочитал из автозаполнения:
mItem = (AutoCompleteTextView) findViewById(R.id.todo_edit_item);
String nou=mItem.getText().toString();
И затем я сравниваю nou (это то, что я написал в автозаполнении), с тем, что я предварительно предопределл в списке, поэтому, если это новый продукт (которого еще не было в списке), я добавляю его в базу данных
for(int i = 0; i < l; i++)
{
if (nou!=fruits[i])
t=true;
else t=false;
}
if (t==true)
{
db.insertTitle(nou);
fruits=db.getAllfromDB("Fruits","fruit");
l=l+1;
}
Любые идеи о том, что я делаю неправильно здесь, потому что я не могу понять. Я буду здесь для дальнейших подробностей. Спасибо заранее:)
Вы сравниваете строки, используя !=
вместо использования !nou.equals(fruits[i])
. также вы сравниваете все элементы в массиве каждый раз, так как вы так t
всегда являетесь значением сравнения с последним элементом в массиве, было ли совпадение найдено или нет.
Это должно быть написано так:
t = true;
for(int i = 0; i < l; i++)
{
if (nou.equals(fruits[i]))
{
t=false;
break;
}
}
if (t==true)
{
db.insertTitle(nou);
fruits=db.getAllfromDB("Fruits","fruit");
l=l+1;
}