将动态编辑文本值存储在数据库中

时间:2015-03-31 05:11:27

标签: android

我已经以编程方式创建了动态编辑文本。在自定义对话框窗口中,您可以看到编辑文本代码。

我需要什么:

对于Eg:如果我输入编辑文本值为3,则会创建三个编辑文本。我唯一的问题是,我必须将三个编辑文本值保存在数据库中是在customSave按钮中创建的。

Detail.java:

EditText value;

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

setContentView(R.layout.detail);

value = (EditText) findViewById(R.id.value);

btnAddCount.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    final Dialog dialog = new Dialog(Detail.this);

                    //setting custom layout to dialog
                    dialog.setContentView(R.layout.custom_dialog_layout);

                    dialog.setTitle("Add List");

                    //adding button click event
                    final Button createEditText = (Button) dialog.findViewById(R.id.button);

                    createEditText.setOnClickListener(new OnClickListener() {
                        @Override
                        public void onClick(View v) {

                            count = value.getText().toString();


                            int i = Integer.parseInt(count);


                            if (i >= 0) {
                                do {


                                    et = new EditText(VehicleDetail.this);


                                    FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
                                    params.gravity = Gravity.CENTER;

                                    ((LinearLayout) dialog.findViewById(R.id.container)).addView(et);

                                    //           db.execSQL("insert into PassengerDetail (PASSENGER_ID) values('" + et.getText().toString() + "')");


                                    i--;
                                    createEditText.setVisibility(View.INVISIBLE);


                                } while (i > 0);

                                Toast.makeText(getApplicationContext(), "Running", Toast.LENGTH_LONG).show();

                            }
                        }
                    });


                    customSave.setOnClickListener(new OnClickListener() {
                        @Override
                        public void onClick(View v) {


                            db.execSQL("insert into Detail(NUMBER_ID) values('" + et.getText().toString() + "')");


                            Log.d("Edit", "editText" + et);

                            dialog.dismiss();
                        }
                    });

                    dialog.show();
                }


            });

如果我将编辑文本值输入为3,则在单击customSave按钮时,我必须将三个编辑文本值存储在数据库中的3行中。但现在只有一个编辑文本将存储在数据库中。

任何人都可以帮助我。谢谢。

1 个答案:

答案 0 :(得分:3)

将Edittexts global的ArrayList声明为:

ArrayList<EditText> editTexts = new ArrayList<EditText>();

在do while循环中添加所有新创建的编辑文本对象:

editTexts.add(et);

然后在customSave onclickListner中获取所有编辑文本并将其保存在数据库中:

for (Iterator iterator = editTexts.iterator(); iterator.hasNext();) {
     EditText editText = (EditText) iterator.next();
     db.execSQL("insert into Detail(NUMBER_ID) values('" + editText.getText().toString() + "')");
      Log.d("Edit", "editText" + et);
}
editTexts.clear();