微调器的预设值来自字符串数组。
<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(我的微调器)无法正确显示。我错过了什么?
答案 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);