在Android Spinner中,可以有两种方式选中选项:手动选择或编程方式选择。以下是如何区分两种方式选择的
1.编写OnItemSelectedListener监听器来在Spinner选择时处理不同的选择方式。在OnItemSelectedListener监听器中,可以使用isPressed()方法来区分手动选择和编程方式选择。在手动选择中,这个方法返回true,而在编程方式选择中则为false。
2.可以使用performClick()方法来模拟手动选择Spinner中的选项。这将导致isPressed()方法返回true,并表明是手动选择。
以下是使用第一种方法区分手动和编程方式选择的示例代码:
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView> parent, View view, int position, long id) {
if (view.isPressed()) {
// Handled manual selection
Log.d("Spinner", "Manual selection");
} else {
// Handled programmatically selection
Log.d("Spinner", "Programmatic selection");
}
}
@Override
public void onNothingSelected(AdapterView> parent) {
}
});
以下是使用第二种方法模拟手动选择Spinner中的选项的示例代码:
spinner.post(new Runnable() {
@Override
public void run() {
spinner.performClick();
}
});