动态添加行将该值存储到数据库中

时间:2013-09-28 06:51:55

标签: android android-sqlite

有一行包含14个edittext.have两个按钮,用于动态添加和删除行。我能够做到这一点,我的问题是每当我添加一行时,行的所有edittext都有相同的id和名称那我的问题是。 1.如何在添加按钮单击时更改edittext的名称和ID。 2.add如何将多行的值存储到数据库中。 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++;        

        }      

提前感谢。

2 个答案:

答案 0 :(得分:0)

单行:

将所有EditText对象放在列表中。

当您想要存储数据时,只需迭代它们即可。

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

使用它,它们具有什么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() ; 
    } 
} 

为什么你可以问TreeMap。它只是具有很好的功能,它可以对键进行排序,以便在迭代时按顺序获取行。

答案 1 :(得分:0)

这是可能的,添加动态edittext和按钮和图像。 check this post