2013-03-22 46 views
3

我有一個國家的微調。當我執行更新功能時,我希望無論數據保存在數據庫中,都應該保存在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

如果你可以張貼一些代碼,然後它會更好,也複製issue.Do後logcat的日誌。 – 2013-03-22 07:13:52

回答

0

我在我的代碼中做的事情是,當我打開活動和它的即將加載從微調值的值,我第一次從數據庫中讀取我想要的表。在我的表中,我設置了布爾值,並且整個表中只有一個值是真的。首先,我將默認值設置爲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; 
} 
+0

這是你要找的m8嗎? – 2013-03-22 08:30:29

1

我已經解決了我問題。我已經在這裏給我的代碼。這樣我們就可以將特定行的數據庫中的快速選擇設置爲微調器。

在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])); 
     } 
    } 
相關問題