2013-09-28 2 views
0

행에 14 개의 edittext.have 행이 동적으로 추가되고 삭제되도록합니다. 내 행을 추가 할 수 있습니다. 내 문제는 내가 행을 추가 할 때마다입니다. 행의 edittext는 동일한 id와 name을가집니다. 그래서 제 질문이 있습니다. 1. 추가 버튼 클릭시 edittext의 이름과 ID를 변경하는 방법. 2. 데이터베이스에 여러 행의 값을 저장하는 방법을 추가하십시오. 내 코드는 enter image description here ..
row.xml동적으로 행 추가 행 추가 데이터베이스에 해당 값 저장

<TableRow xmlns:android="http://schemas.android.com/apk/res/android" 
      android:id="@+id/tableRow1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content"     
      android:background="@drawable/table_back"  
      android:layout_gravity="center_vertical" > 

     <EditText 
       android:id="@+id/req" 
       android:layout_width="85dp" 
       android:layout_height="wrap_content"      
       android:background="#00000000"> 
       <requestFocus /> 
     </EditText> 

     <EditText 
       android:id="@+id/fm" 
       android:layout_width="82dp" 
       android:layout_height="wrap_content" 
       android:inputType="text" 
       android:background="#00000000" 
       android:ems="10" /> 
     <EditText 
       android:id="@+id/effects" 
       android:layout_width="82dp" 
       android:inputType="text" 
       android:layout_height="wrap_content" 
       android:background="#00000000" 
       android:ems="10" /> 
     <EditText 
       android:id="@+id/sev" 
       android:layout_width="30dp" 
       android:layout_height="wrap_content" 
       android:background="#00000000" 
       android:layout_marginRight="10dp" 
       android:inputType="text" 
       android:ems="10" /> 
     <EditText 
       android:id="@+id/causes" 
       android:layout_width="82dp" 
       android:layout_height="wrap_content" 
       android:inputType="text" 
       android:background="#00000000" 
       android:ems="10" /> 
     <EditText 
       android:id="@+id/occ" 
       android:layout_width="35dp" 
       android:inputType="text" 
       android:layout_height="wrap_content" 
       android:background="#00000000" 
       android:layout_marginRight="7dp" 
       android:ems="10" /> 
     <EditText 
       android:id="@+id/process" 
       android:layout_width="85dp" 
       android:inputType="text" 
       android:layout_height="wrap_content" 
       android:background="#00000000" 
       android:ems="10" /> 
     <EditText 
       android:id="@+id/det" 
       android:layout_width="35dp" 
       android:inputType="text" 
       android:layout_height="wrap_content" 
       android:background="#00000000" 
       android:layout_marginRight="3dp" 
       android:ems="10" /> 
     <EditText 
       android:id="@+id/rpn" 
       android:layout_width="35dp" 
       android:inputType="text" 
       android:layout_height="wrap_content" 
       android:background="#00000000" 
       android:layout_marginRight="5dp" 
       android:ems="10" /> 
     <EditText 
       android:id="@+id/recommended" 
       android:layout_width="82dp" 
       android:inputType="text" 
       android:layout_height="wrap_content" 
       android:background="#00000000" 
       android:layout_marginRight="2dp" 
       android:ems="10" /> 
     <EditText 
       android:id="@+id/sev2" 
       android:layout_width="35dp" 
       android:inputType="text" 
       android:layout_height="wrap_content" 
       android:background="#00000000" 
       android:layout_marginRight="3dp" 
       android:ems="10" /> 
     <EditText 
       android:id="@+id/occ2" 
       android:layout_width="35dp" 
       android:inputType="text" 
       android:layout_height="wrap_content" 
       android:background="#00000000" 
       android:layout_marginRight="8dp" 
       android:ems="10" /> 
     <EditText 
       android:id="@+id/det2" 
       android:layout_width="35dp" 
       android:inputType="text" 
       android:layout_height="wrap_content" 
       android:background="#00000000" 
       android:layout_marginRight="3dp" 
       android:ems="10" /> 
     <EditText 
       android:id="@+id/new_rpn" 
       android:layout_width="35dp" 
       android:inputType="text" 
       android:layout_height="wrap_content" 
       android:background="#00000000" 
       android:layout_marginRight="6dp" 
       android:ems="10" /> 
     <EditText 
       android:id="@+id/resp" 
       android:layout_width="85dp" 
       android:inputType="text" 
       android:layout_height="wrap_content" 
       android:background="#00000000" 
       android:ems="10" /> 
     <EditText 
       android:id="@+id/target_date" 
       android:layout_width="40dp" 
       android:inputType="date" 
       android:layout_height="wrap_content" 
       android:background="#00000000" 
       android:ems="10" /> 

Create.class 사전에

protected void onCreate(Bundle savedInstanceState){ 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.create_fmea_2); 

      mContainerView = (LinearLayout) findViewById(R.id.parentView); 
      mAddButton = (ImageButton) findViewById(R.id.btnAddNewItem); 
      mDeleteButton=(ImageButton)findViewById(R.id.btnDelete); 

      // Add some examples 
      inflateEditRow(count); 
    } 
      public void onAddNewClicked(View v) { 


count++; 
    inflateEditRow(count);  
    v.setVisibility(View.VISIBLE); 
// System.out.println("value of count "+count); 
} 

    public void onDeleteClicked(View v) { 
     // remove the row by calling the getParent on button 
    // mContainerView.removeView((View) v.getParent()); 



       int del=count; 
       if(del-->=1){ 
       mContainerView.removeViewAt(del); 
       count--; 

     } 
     else{ 
      Toast.makeText(getApplicationContext(), "Add row to delete", Toast.LENGTH_SHORT).show(); 
     } 
       } 

private void inflateEditRow(int id) { 
     alleds=new ArrayList<EditText>(); 
     int et_id=1; 

     for(int i=1;i<=id;){ 


     // System.out.println("value of i "+i); 
      LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
       rowView = inflater.inflate(R.layout.row1, null); 


      rowView.setId(count); 
      i++;   

     }  

감사합니다.

+0

여기에서 SQLite를 읽으십시오. www.vogella.com/articles/AndroidSQLite/article.html – Razgriz

+0

@Razgriz가 답장을 보내 주셔서 감사합니다. 하지만 한 번에 여러 행을 삽입해야합니다. 나는 데이터베이스에 단일 행을 삽입하는 방법을 알고. –

+0

@sunil_patidar 문제에 대한 해결책을 찾았습니까? 그렇다면 코드를 입력하십시오. 감사합니다 –

답변

0

단일 행 :

이 목록의 모든 글고 객체를 넣습니다.

데이터를 저장할 때 간단하게 반복합니다.

for (EditText et: editTextList) { 
    addSingleRow(et.getText().toString() ; 
} 

이 ID를 사용하면 ID 나 이름이 중요하지 않습니다.

여러 행 :

Map<Integer, List<EditText>> editTextRows = new TreeMap<Integer, List<EditText>>(); 

for (Integer row: editTextRows.keySet()) { 

    List<EditText> editTextList = editTextRows.get(row); 

    for (EditText et: editTextList) { 
     addSingleRow(et.getText().toString() ; 
    } 
} 

왜 요청할 수 있습니다 트리 맵. 그것은 단지 키를 정렬하는 좋은 기능을 가지고 있으므로 반복 할 때 순서대로 행을 가져와야합니다.

+0

덕분에, 내가 그것을 어떻게 여러 행을 처리하는, 하나에 적용 할 수있다 생각합니다. –

+0

문제 없음 . 대답을 업데이트했습니다. – cYrixmorten

+0

감사합니다.나는 그것을 확실히 시도 할 것이다 ..... –

0

동적으로 편집 텍스트와 버튼 및 이미지를 추가 할 수 있습니다. check this post