0

我对微调器的预设值来自字符串数组。

<string-array name="currencyArray">
    <item>INR</item>
    <item>USD</item>
    <item>EUR</item>
</string-array>

我能够显示这个并保存它。我在“添加”的 SQLite DB 中添加一些值。更新时,我想获取值并显示在屏幕上。其中之一是微调器。

我试过这段代码

String myString = getIntent().getStringExtra("Currency");
System.out.println(myString);
ArrayAdapter myAdap = (ArrayAdapter) currencySpin.getAdapter();
int spinnerPosition = myAdap.getPosition(myString);
//set the default according to value
currencySpin.setSelection(spinnerPosition);

sysout(第 2 行)实际上显示了来自数据库的正确值。但是微调器仍然显示初始值而不是 DB 值。我在这里想念什么?

我正在使用此代码在空屏幕中填充和读取微调器

// reading the spinner
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
    this,
    R.array.currencyArray, 
    android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
currencySpin.setAdapter(adapter);

currencySpin.setOnItemSelectedListener(this);

更新代码

            String myString = getIntent().getStringExtra("Currency");
        System.out.println(myString);

        ArrayAdapter<CharSequence> adapter = ArrayAdapter
        .createFromResource(this, R.array.currencyArray,
                android.R.layout.simple_spinner_item);

        spinnerPosition = adapter.getPosition(myString);
        System.out.println(spinnerPosition);

        //set the default according to value
        currencySpin.setSelection(spinnerPosition);

spinnerPosition 以正确的数字出现(根据我的数据从 0 变为 2),但 currencySpin (我的微调器)无法正确显示。我错过了什么??

4

1 回答 1

2

我能够使用这个更新的代码来解决它。这适用于正在寻找此解决方案的其他任何人

                // reading the spinner
            ArrayAdapter<CharSequence> adapter = ArrayAdapter
                    .createFromResource(this, R.array.currencyArray,
                            android.R.layout.simple_spinner_item);
            adapter
                    .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            currencySpin.setAdapter(adapter);

            currencySpin.setOnItemSelectedListener(this);

            spinnerPosition = 0;
            String myString = getIntent().getStringExtra("Currency");
            spinnerPosition = adapter.getPosition(myString);
            currencySpin.setSelection(spinnerPosition);
于 2013-01-17T08:03:29.777 回答