我有一个国家的旋转器。当我执行更新功能时,我希望保存在数据库中的任何数据都应保存在edittext和spinner中。对于微调器,我收到错误资源。
我这样做是为了将默认选择数据从数据库设置为微调器,
// local country is added in arraylist
ArrayList<String> arraylist_country = new ArrayList<String>();
arraylist_country.add(memberPersonalDetailsScreenActivityController.getMemberMasterData().get(0).getL_country().toString());
for(int i=0 ; i<length ; i++){
if(select_member_id == member_id[i]){
spinner_country.setSelection(arraylist_country.indexOf(local_country[i]));
}
是否有其他解决方案可以将默认选择数据设置为微调器?
答案 0 :(得分:1)
我已经解决了我的问题。我已经在这里给出了我的代码。这样我们可以将defult selection设置为spinner,从数据库中为特定行。
on onCreate -
//Declared spinner and used ArrayAdapter
spinner_country = (Spinner) findViewById(R.id.spinner_country_susa);
spinner_country.setOnItemSelectedListener(this);
country_adapter = ArrayAdapter.createFromResource(this, R.array.country_array, android.R.layout.simple_spinner_item);
country_adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner_country.setAdapter(country_adapter);
编辑() - 中的
//user defined function called in onCreate()
String[] local_country = memberPersonalDetailsScreenActivityController.getMemberMasterData().get(0).getL_country();
for(int i=0 ; i<length ; i++){
if(select_member_id == member_id[i]){
spinner_country.setSelection(country_adapter.getPosition(local_country[i]));
}
}
答案 1 :(得分:0)
我在我的代码中做的是当我打开活动并将要从微调器加载值时,我首先从数据库中读取我想要的表。在我的表中,我设置了布尔值,整个表中只有1个值为真。首先,我将默认值设置为true。如果用户想要更改它,那么当您打开活动并且默认值进入时,将您要保存的新值设置为微调器,按save或您拥有的任何值,并在db表中更改布尔值新值的默认值。此外,当您打开活动时,将设置为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();
}
});
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;
}