当我仍然使用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语句中进行比较?任何帮助表示赞赏!
答案 0 :(得分:0)
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);
}
}
})
希望能帮到你。
答案 1 :(得分:0)
您在oncreate方法中声明了一个局部变量“edit”,但您在“find”方法中也使用了一个全局变量。