2013-03-22 2 views
3

나는 국가의 회 전자가있다. 업데이트 기능을 수행 할 때 데이터베이스에 저장된 모든 데이터를 edittext 및 회 전자에 저장해야합니다. 스피너의 경우 오류 리소스를 찾을 수 없습니다.회 전자 : 특정 행에 대한 데이터베이스에서 회 전자의 기본 선택을 설정하는 방법

나는

// 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 후 로그 캣 로그를 복제하는 것이 좋습니다 것입니다. –

답변

0

내가 코드에서 수행하는 작업은 스피너에서 값을로드하려고 할 때입니다. 먼저 데이터베이스에서 원하는 테이블을 읽습니다. 내 테이블에 내가 부울 값을 설정하고 전체 테이블에서 단 하나의 값이 사실입니다. 먼저 기본값을 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; 
} 
+0

이게 당신이 m8을 찾고 있었던거야? –

1

dpAdapter 클래스 내 발행물. 여기에 코드를 입력했습니다.이 방법을 사용하면 데이터베이스에서 특정 행에 대해 스피너로 defult selection을 설정할 수 있습니다. 편집에서 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])); 
     } 
    } 
관련 문제