Java 使用AutoCompleteTextView获取文本
当我仍然使用EditText时,代码可以正常工作,但我将其更改为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
@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方法中也使用了一个全局变量