这通常是由于 Spinner 的焦点获取行为造成的。为了让 Spinner 在第一次点击时工作,可以在 Spinner 上设置属性 "android:focusableInTouchMode" 为 false。以下是一个示例:
XML代码:
Java 代码:
Spinner spinner = findViewById(R.id.spinner);
ArrayAdapter adapter = ArrayAdapter.createFromResource(this,
R.array.planets_array, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView> parent, View view, int position, long id) {
// handle item selection
}
@Override
public void onNothingSelected(AdapterView> parent) {
// TODO Auto-generated method stub
}
});
这个示例中,我们在 XML 布局文件中将 "android:focusableInTouchMode" 属性设置为 false,然后在 Java 代码中设置 Spinner 的适配器和选择监听器。现在,您只需要单击 Spinner 一次即可选择其中的值。