Java 未在微调器中调用onItemSelected
我试图在我的应用程序中实现一个微调器。所有内容都正确显示,微调器也成功地填充了项目 我的问题是: 当我选择一个项目时,什么也不会发生 以下是我在onCreate中的代码:Java 未在微调器中调用onItemSelected,java,android,spinner,Java,Android,Spinner,我试图在我的应用程序中实现一个微调器。所有内容都正确显示,微调器也成功地填充了项目 我的问题是: 当我选择一个项目时,什么也不会发生 以下是我在onCreate中的代码: Spinner spinner; ArrayAdapter<String> arrayAdapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, eventTitles); arrayAdapter.
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!");
}
});
微调器微调器;
ArrayAdapter ArrayAdapter=新的ArrayAdapter(这是android.R.layout.simple\u微调器\u项,eventTitles);
arrayAdapter.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
微调器=(微调器)findViewById(R.id.spinner);
spinner.setAdapter(阵列适配器);
spinner.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView AdapterView、View视图、int i、long l){
Log.d(“微调器”,adapterView.getItemAtPosition(i.toString());
Toast.makeText(AdminActivity.this,“Hello Toast”,Toast.LENGTH_SHORT.show();
}
@凌驾
未选择公共无效(AdapterView AdapterView){
Log.d(“微调器”,“未选择任何内容!”);
}
});
有什么建议吗
谢谢!
Alex您已经在适配器中再次定义了微调器的布局。这不是必需的,请使用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!");
}
});
微调器微调器;
ArrayAdapter ArrayAdapter=新的ArrayAdapter(这是android.R.layout.simple\u微调器\u项,eventTitles);
微调器=(微调器)findViewById(R.id.spinner);
spinner.setAdapter(阵列适配器);
spinner.setOnItemSelectedListener(新的OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView AdapterView、View视图、int i、long l){
Log.d(“微调器”,adapterView.getItemAtPosition(i.toString());
Toast.makeText(AdminActivity.this,“Hello Toast”,Toast.LENGTH_SHORT.show();
}
@凌驾
未选择公共无效(AdapterView AdapterView){
Log.d(“微调器”,“未选择任何内容!”);
}
});
如文档所示,微调器不支持项目单击事件。要对用户单击做出反应,请调用ArrayAdapter
对象的setOnItemClickListener
。我在异步任务中弄糟了一些东西。现在它工作了!谢谢大家的回答。在微调器上设置下拉视图资源
,而不是适配器。