Android:使用DB中的值设置微调器 - 但是基本数组是String

时间:2013-01-15 10:18:52

标签: android

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

<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中的正确值。但是微调器仍然显示初始值而不是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(我的微调器)无法正确显示。我错过了什么?

1 个答案:

答案 0 :(得分: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);