Java 使用AutoCompleteTextView获取文本

Java 使用AutoCompleteTextView获取文本,java,android,autocomplete,Java,Android,Autocomplete,当我仍然使用EditText时,代码可以正常工作,但我将其更改为AutoCompleteTextView,以方便用户使用,现在我遇到了一个问题。以下是大部分代码: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); AutoCompleteTex

当我仍然使用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中键入一个工厂的名称,然后单击一个按钮,根据他们键入的任何工厂进入一个新的活动。最后我举了三个例子。在我添加自动填充部分之前,代码按原样运行良好

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


我不知道它现在出了什么问题。也许我没有正确地从AutoCompleteTextView中获取实际文本,以便在if语句中进行比较?感谢您的帮助

对不起,我不明白你的意思。也许您可以尝试使用AutoCompleteTextView.setOnItemClickListener。例如:

edit.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                String item = items.get(position);
                 if(item.equalsIgnoreCase("Brown Turkey Fig")){
                   Intent intent = new Intent(this, BrownTurkeyFig.class);
                   startActivity(intent);
                 } else if(item.equalsIgnoreCase("Emerald GreenArborvitae"){
                    Intent intent = new 
                               Intent(this,EmeraldGreenArborvitae.class);
                     startActivity(intent);
                 } else if(item.equalsIgnoreCase("Delaware Valley White Azalea")){
                     Intent intent = new Intent(this, DelawareValleyWhiteAzalea.class);
                     startActivity(intent);
} 
            }
        })

希望对您有所帮助。

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