我在我的代碼中做的事情是,當我打開活動和它的即將加載從微調值的值,我第一次從數據庫中讀取我想要的表。在我的表中,我設置了布爾值,並且整個表中只有一個值是真的。首先,我將默認值設置爲true。如果用戶想要更改它,那麼當您打開該活動並且默認值進入時,將spinner設置爲您要保存的新值,請按save或您擁有的值,然後在db表中更改布爾值新的默認值。此外,當您打開活動時,將真值設置爲微調器中的值。 希望這有助於和我不是困惑:P
這裏是我的代碼,也許不是最好的編寫代碼,但它工作得很好:
db.open();
Cursor c1 = db.getAllCurrencies();
currentCurrencyList = new ArrayList<String>();
if (c1.moveToFirst()) {
do {
currentCurrencyList.add(c1.getString(c1
.getColumnIndex(DBAdapter.MY_CURRENT_CURRENCY_NAMES)));
} while (c1.moveToNext());
}
db.close();
dataAdapter1 = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, currentCurrencyList);
dataAdapter1
.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
currencySpinner.setAdapter(dataAdapter1);
currencySpinner.setSelection(0);
db.open();
Cursor c2 = db.getCurrentCurrency();
currentCurrencyList2 = new ArrayList<String>();
String currencySymbol = "";
if (c2.getCount() == 1) {
currencySymbol = c2.getString(c2
.getColumnIndex(DBAdapter.MY_CURRENT_CURRENCY_NAMES));
}
currentCurrency.setText(currencySymbol);
db.close();
setNewCurrencyButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
String spinnerSelection = "";
spinnerSelection = currencySpinner.getSelectedItem().toString();
db.open();
db.updateOldCurrency();
db.updateCurrentCurrency(spinnerSelection);
Cursor c3 = db.getCurrentCurrency();
currentCurrencyList3 = new ArrayList<String>();
String currencySymbol2 = "";
if (c3.moveToFirst()) {
do {
currentCurrencyList3.add(c3.getString(c3
.getColumnIndex(DBAdapter.MY_CURRENT_CURRENCY_NAMES)));
} while (c3.moveToNext());
for (int i = 0; i <= currentCurrencyList3.size() - 1; i++) {
currencySymbol2 = currentCurrencyList3.get(i);
}
}
currentCurrency.setText(currencySymbol2);
db.close();
}
});
dpAdapter類
public boolean updateOldCurrency() {
ContentValues args = new ContentValues();
args.put(MY_CURRENT_CURRENCY_BOOLEAN, 0);
return db.update(MY_CURRENT_CURRENCY_TABLE, args,
MY_CURRENT_CURRENCY_BOOLEAN + "='" + 1 + "'", null) > 0;
}
public boolean updateCurrentCurrency(String rowId) {
ContentValues args = new ContentValues();
args.put(MY_CURRENT_CURRENCY_BOOLEAN, 1);
return db.update(MY_CURRENT_CURRENCY_TABLE, args,
MY_CURRENT_CURRENCY_NAMES + "='" + rowId + "'", null) > 0;
}
如果你可以張貼一些代碼,然後它會更好,也複製issue.Do後logcat的日誌。 – 2013-03-22 07:13:52