【问题标题】:can't get the text from an autocomplete无法从自动完成中获取文本
【发布时间】:2011-08-06 14:43:32
【问题描述】:

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

现在,问题是我的应用程序必须向用户提供在该列表中介绍一些不在列表中的其他产品的可能性。

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

现在,我的问题是,当我显示我在数据库中介绍的产品时,我用来显示数据库中的内容的 toast 文本在“产品..... 。”。

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

这是我从自动完成中读取的方式:

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

任何人对我在这里做错了什么有任何想法,因为我无法弄清楚。我会在这里了解更多详细信息。提前谢谢你:)

【问题讨论】:

    标签: android database list text autocomplete


    【解决方案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;
    }
    

    【讨论】:

    • 是的,我明白,但我总是介绍一些不在列表中的东西,而且我总是什么也没显示......我从自动完成中读取的方式是否正确?Thx
    • 好吧,我试过了,但仍然没有显示...我真的很想这是因为它无法从自动完成我介绍的产品中读取
    • 每次循环前添加一个nou的打印,因为它可能返回全文,你可以使用split()分割它
    • 它只是一个产品,所以它就像“苹果”,不需要设置拆分!
    • 是的,它什么都不显示!!!!!!我把 print 放在循环之前并要求显示 nou...但它什么也没显示。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-22
    • 1970-01-01
    • 2016-02-20
    • 2022-01-14
    • 2013-10-04
    • 2015-02-20
    • 2012-12-02
    相关资源
    最近更新 更多