无法从自动填充中获取文本

时间:2011-04-15 20:10:09

标签: android database list text autocomplete

我必须在android中使用数据库创建一个应用程序。在该数据库中,我有一个预定义的产品列表。

现在,问题是我的ap必须向用户提供在该列表中引入一些不在列表中的其他产品的可能性。

为此,我创建了一个自动完成文本视图,在其中我介绍了一个新产品,我将文本从自动完成中删除,我必须将其写入数据库

现在,我的问题是,当我显示我在数据库中引入的产品时,我用来显示我在数据库中的内容的toast文本它向我显示“product ..... 。“

现在,这可能是因为当我尝试从自动填充中获取文本时,我得不到任何回报?

这是我从自动填充中读取的内容:

mItem = (AutoCompleteTextView) findViewById(R.id.todo_edit_item);

String nou=mItem.getText().toString();

然后我将你(我在自动完成中写的内容)与我在列表中预先确定的内容进行比较,所以如果它是一个新产品(已经不在列表中),我将它添加到数据库中:

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;
    }

任何有关我在这里做错的任何想法都会导致我无法弄清楚。我会在这里了解更多细节。谢谢你提前:)

1 个答案:

答案 0 :(得分:0)

您使用!=而非使用!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;
}