2013-10-22 5 views
0

동적으로 EditText를 만들 때 SQLite 테이블의 "IMPORTO_FATTURA"열에 값을 입력해야합니다. 그러나 모든 값에 대해 새 레코드를 만들어야합니다 .... 어떻게해야합니까? 이것은 지금까지 생성 된 코드입니다.여러 레코드 삽입 SQLite

ContentValues cv = new ContentValues(); 
cv.put(FattureTable.NOME_FORNITORE, spinnerFornitori.getSelectedItem().toString()); 
if(lineare instanceof ViewGroup) { 
    for(int i=0; i<((ViewGroup)lineare).getChildCount(); i++) { 
     View nextChild = ((ViewGroup)lineare).getChildAt(i); 
     if(nextChild instanceof LinearLayout) { 
      View child = ((LinearLayout)nextChild).getChildAt(0); 
      if(child instanceof EditText) { 
       EditText et = (EditText)child; 
       String value = et.getText().toString();        
       cv.put(FattureTable.IMPORTO_FATTURA, value);        
      } 
     } 
    } 
} 
cv.put(FattureTable.IMPORTO_FATTURA, Importo.getText().toString()); 
.... 
.... 

답변

1

여러 개의 값을 사용하여 여러 개의 EditText 필드의 텍스트를 의미하거나 한 필드를 여러 결과로 나눌 수 없다는 것을 알 수 없습니다. 두 가지 방법이 있습니다.

복수 편집 텍스트 기본 아이디어는 루프를 사용하는 것입니다. 고정 된 수의 편집 텍스트를 사용하는 경우 프로세스가 더 쉽지만 실제로 그렇게 많이 다릅니다. 어떤 경우에는 Array 또는 List (또는 안녕 ArrayList)의 내용을 모두 포함하는 내용으로 반복되며, 다른 내용은 컨테이너보기의 내용을 반복합니다. EditText 예를

ArrayList<String> textFieldEntries = new ArrayList<String>(); 
textFieldEntries.put(editText1.getText().toString)); 
//add all values to this array . . . 

databaseHandler.addValues(textFieldEntries); 

에 대한 databaseHandler 실제로 데이터베이스와 상호 작용하는 클래스 (당신이 그것을 이런 식으로하지만 훨씬 청소기를 수행 할 필요가 없습니다)입니다. 메소드 addEntry는 기본적인 아이디어는 그 전체를 삽입 한 후 콘텐츠 값으로 그 값을 추가, 당신이 그 콜렉션의 내용을 먼저하고 루프를 추가 할 모든 것을 수집하는 것입니다

public void addEntry(ArrayList<String> entries){ 
    SQLiteDatabase db = this.getWritableDatabase(); 
    ContentValues cv = new ContentValues(); 

    for(String text : entries){ 
     cv.put(key, text); 
    } 
    db.insert(TABLE, null, cv); 
} 

같은 것을 볼 수 있었다 콘텐츠의 덩어리.

하나 개의보기 많은 값

당신은 아이디어는 당신이 문자열에 split을 사용 상기와 같은 것이다 구분되어야하며이를 기반으로 분할 한 문자열 항목이 하나 개의보기가있는 경우 설정된 문자 (공백 일 수 있음). 이렇게하면 위와 같은 방법으로 반복 할 수있는 문자열 배열이 제공됩니다.

분할이 더 복잡하다면 원하는 배열을 반환하는 고유 한 토크 나이저 클래스를 만들 수 있습니다.

-1

SQLite 컴파일 된 명령문을 살펴보십시오.