【发布时间】:2018-06-23 05:20:59
【问题描述】:
我创建了一个微调器,它从某个数据库中获取它的值。微调器还有一个执行方法的 setOnItemSelectedListener。每当我单击微调器上的某个项目时,我都不会执行其中的内容。
//Getting values from database
myDBJ = new JobDatabaseHelper(this);
ArrayList<String> jobname= myDBJ.getalljobname();
Spinner spinnerJob = (Spinner) findViewById(R.id.spinnerJob);
ArrayAdapter<String> adapterForJob = new ArrayAdapter<String>(InfoActivity.this, android.R.layout.simple_spinner_item, jobname);
adapterForJob.notifyDataSetChanged();
adapterForJob.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinnerJob.setAdapter(adapterForJob);
spinnerJob.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
Toast.makeText(InfoActivity.this, "test" + i ,Toast.LENGTH_SHORT).show();
//refreshrate();
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});
我什至在里面做了一个祝酒词,这样我就知道它是否有效。当我单击一个项目时,它不会显示 toast 消息。我想补充的另一个细节是,在我的 onCreate 和 onPostResume 覆盖方法中调用的名为“refreshspinners”的方法中。
【问题讨论】:
-
guide 表示“您为微调器 (...) 提供的选择必须通过 SpinnerAdapter 提供,例如 (...) CursorAdapter 如果选择是可从数据库查询中获得”。看来是你的情况。尝试使用 CursorAdapter 而不是 ArrayAdapter。
-
什么是jobname,微调器中有多少项目?
-
请在问题中添加jobname的创建
-
jobname 是一个数组列表。它从数据库中获取它的值。微调器也可以正常工作,只是 onItemSelectedListener 没有触发