如何获取 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 事件上的可运行对象,它不会在创建微调器时触发。