我试图在我的应用程序中实现一个Spinner。一切都正确显示,微调器也成功填充了项目。
我的问题: 当我选择一个项目时,没有任何反应。
这是我在onCreate中的代码:
Spinner spinner;
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, eventTitles);
arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner = (Spinner)findViewById(R.id.spinner);
spinner.setAdapter(arrayAdapter);
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
Log.d("Spinner",adapterView.getItemAtPosition(i).toString());
Toast.makeText(AdminActivity.this, "Hello Toast", Toast.LENGTH_SHORT).show();
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
Log.d("Spinner","Nothing selected!");
}
});
任何建议?
谢谢! 亚历
答案 0 :(得分:0)
您已经为适配器中的微调器定义了布局,它不是必需的,并且使用OnItemSelectedListener而不是使用AdapterView.OnItemSelectedListener。
试试这个,
Spinner spinner;
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, eventTitles);
spinner = (Spinner)findViewById(R.id.spinner);
spinner.setAdapter(arrayAdapter);
spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
Log.d("Spinner",adapterView.getItemAtPosition(i).toString());
Toast.makeText(AdminActivity.this, "Hello Toast", Toast.LENGTH_SHORT).show();
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
Log.d("Spinner","Nothing selected!");
}
});
答案 1 :(得分:0)
如文档中所示,Spinner
不支持项目点击事件。要对用户点击做出反应,请改为调用setOnItemClickListener
对象的ArrayAdapter
。
答案 2 :(得分:0)
我在AsyncTask中弄乱了一些东西。现在它有效!无论如何,谢谢大家的答案。