如何获取 Android 上的当前微调器值
How to get the current spinner value on Android
有谁知道如何从微调器中获取当前 id 值。
问题是微调器值动态变化,没有与用户交互,我需要微调器值。
您可以使用三种方法了解当前选择:
您可以将其中之一转换为微调器表示的实际值。
另一个可用的选项是使用传递给 OnItemSelectedListener 的值。
此示例使用位置而不使用 getSelectedItemPosition() :-
// Set Spinner's onItemSelectedListener ie to act when an aisle is selected.
// Note!!! run on post, as a runnable, so that initial onItemSelected event (at initialisation) is not captured.
current_aislelistspinner.post(new Runnable() {
@Override
public void run() {
current_aislelistspinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
currentaislelistcursor.moveToPosition(position);
currentaisleid = currentaislelistcursor.getLong(ShopperDBHelper.AISLES_COLUMN_ID_INDEX);
Log.d(Constants.LOG,"ACTIVITY: " + THIS_ACTIVITY + " SECTION: Running - AISLELIST OnItemSelectedLIstener" +
"- AILSEID Extracted=" + currentaisleid);
currentproductsperaisleecursor = shopperdb.getProductsperAisle(currentaisleid);
current_productsperaislecursoradapter.swapCursor(currentproductsperaisleecursor);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
}
});
注意!因为上面是微调器的 post 事件上的可运行对象,它不会在创建微调器时触发。
有谁知道如何从微调器中获取当前 id 值。
问题是微调器值动态变化,没有与用户交互,我需要微调器值。
您可以使用三种方法了解当前选择:
您可以将其中之一转换为微调器表示的实际值。
另一个可用的选项是使用传递给 OnItemSelectedListener 的值。
此示例使用位置而不使用 getSelectedItemPosition() :-
// Set Spinner's onItemSelectedListener ie to act when an aisle is selected.
// Note!!! run on post, as a runnable, so that initial onItemSelected event (at initialisation) is not captured.
current_aislelistspinner.post(new Runnable() {
@Override
public void run() {
current_aislelistspinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
currentaislelistcursor.moveToPosition(position);
currentaisleid = currentaislelistcursor.getLong(ShopperDBHelper.AISLES_COLUMN_ID_INDEX);
Log.d(Constants.LOG,"ACTIVITY: " + THIS_ACTIVITY + " SECTION: Running - AISLELIST OnItemSelectedLIstener" +
"- AILSEID Extracted=" + currentaisleid);
currentproductsperaisleecursor = shopperdb.getProductsperAisle(currentaisleid);
current_productsperaislecursoradapter.swapCursor(currentproductsperaisleecursor);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
}
});
注意!因为上面是微调器的 post 事件上的可运行对象,它不会在创建微调器时触发。