我创建了一个表格布局,通过单击按钮动态添加表格行。每个表行由三个编辑文本组成。每个编辑文本显示从 sqlite 表检索的内容时间、 Activity 和预算。还可以添加新行。我的问题是:每当当前保存 sqlite 表中数据的编辑文本发生更改时,如何更新 sqlite 表?
编辑:有关更多信息:我已以编程方式创建了三个编辑文本和表格行。所以,这就是我目前一直在尝试的方式。我已将每个 edittext 放入其自己的列表数组中,以便从 edittext 获取数据。我将展示表行中保存数据时间(例如 12:00)的编辑文本之一的示例代码:
String[] timesDatabase = new String[allEdsTimeDatabase.size()];
for(int i=0; i < allEdsTimeDatabase.size(); i++){
timesDatabase[i] = allEdsTimeDatabase.get(i).getText().toString();
timeItemsDatabase.add(timesDatabase[i]);
}
for (int i = 0; i < timeItemsDatabase.size(); i++){
updateTime = timeItemsDatabase.get(i).toString();
}
for (int i = 0; i < db.getActivityIDs().size(); i++){
plannerDatabase = new Planner(db.getActivityIDs2().get(i),updateTime,updateName,updateEx2,dateId,tripId2);
}
db.updateActivity(plannerDatabase);
如果我有这个:db.updateActivity(plannerDatabase);在循环内部,它会将表中的所有内容覆盖/更新为与最后一行相同的内容。如果我把它放在外面,它只会更新最后一行。
最佳答案
使用以下代码更新文本:
EditText editText= (EditText) findViewById(R.id.edittxt);
editText.setOnFocusChangeListener(new OnFocusChangeListener() {
public void onFocusChange(View v, boolean hasFocus) {
if(!hasFocus)
//update sqlite using asynstask
}
});
注意:由于您是动态添加的,因此您可以使用 findViewByTag()
示例:DEMO
关于android - 如何使用tablelayout中动态创建的edittext更新sqlite表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25894950/