我已经以编程方式创建了动态编辑文本。在自定义对话框窗口中,您可以看到编辑文本代码。
我需要什么:
对于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行中。但现在只有一个编辑文本将存储在数据库中。
任何人都可以帮助我。谢谢。
答案 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();