java - 使用 AutoCompleteTextView 获取文本

标签 java android autocomplete

当我仍然使用 EditText 时,代码可以正常工作,但我将其更改为 AutoCompleteTextView 以使用户更轻松,现在我遇到了问题。以下是大部分代码:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main2);

    AutoCompleteTextView edit = (AutoCompleteTextView) findViewById(R.id.et_item);

    String[] items = getResources().getStringArray(R.array.items_array);
    java.util.Arrays.sort(items);
    ArrayAdapter<String> adapter =
            new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, items);
    edit.setAdapter(adapter);

public void find(View view) {

    String name = edit.getText().toString();

    if(name.equalsIgnoreCase("Brown Turkey Fig")){
        Intent intent = new Intent(this, BrownTurkeyFig.class);
        startActivity(intent);
    }
    else if(name.equalsIgnoreCase("Emerald Green Arborvitae")){
        Intent intent = new Intent(this, EmeraldGreenArborvitae.class);
        startActivity(intent);
    }
    else if(name.equalsIgnoreCase("Delaware Valley White Azalea")){
        Intent intent = new Intent(this, DelawareValleyWhiteAzalea.class);
        startActivity(intent);
    }

我已经包含了与问题相关的部分。基本上,用户在 AutoCompleteTextView 中键入植物的名称,然后单击一个按钮,根据他们键入的植物进入新 Activity (我在最后包含了三个作为示例)。在添加自动填充部分之前,代码按原样运行良好。

问题是,当单击按钮时,不会启动下一个 Activity 。它会使应用程序崩溃。

现在不知道出了什么问题。也许我没有正确地从 AutoCompleteTextView 中获取实际文本以在 if 语句中进行比较?如有任何帮助,我们将不胜感激!

最佳答案

您在 oncreate 方法中声明了局部变量“edit”,但也在“find”方法中使用了全局变量。

关于java - 使用 AutoCompleteTextView 获取文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45156335/

相关文章:

javascript - 在自动完成中显示两个不同的值

jquery - Facebook 标记

java - Spring中从多个属性文件读取资源

android - 使 loadingDialog 在 twitter4J 页面完成时消失

Android在webview中复制选中的文本

来自启动器的 Android "Application is not found on your phone"..?

python - 代码完成不给出建议

java - 将 SOAP XML 响应写入文件

java - import edu.stanford.nlp.pipeline.StanfordCoreNLP 无法解析?

java - 线程、对象状态