내가 코드에서 수행하는 작업은 스피너에서 값을로드하려고 할 때입니다. 먼저 데이터베이스에서 원하는 테이블을 읽습니다. 내 테이블에 내가 부울 값을 설정하고 전체 테이블에서 단 하나의 값이 사실입니다. 먼저 기본값을 true로 설정합니다. 사용자가 그것을 변경하기를 원할 때, 당신이 액티비티를 열었을 때 디폴트 값이 나오면, 스피너에 저장하고자하는 새로운 값을 설정하고, 저장 또는 무엇을 가지고 있는지를 설정하고, db 테이블에서 boolean 값을 디폴트 치는 새로운 값으로 설정됩니다. 또한 액티비티를 열면 true 값도 스피너의 값으로 설정됩니다. 희망이 도움이와 나는 혼란 않네 : 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();
}
});
내가 해결 한
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 후 로그 캣 로그를 복제하는 것이 좋습니다 것입니다. –