我创建了一个tablelayout,只需点击一下按钮即可动态添加表格行。每个表行包含三个edittexts。每个edittext显示从sqlite表中检索的内容时间,活动和预算。还可以添加新行。我的问题是:每当在当前持有sqlite表数据的edittext中进行更改时,如何更新sqlite表?
编辑:有关详细信息:我已通过编程方式创建了三个edittexts和表格行。所以,这就是我目前正在尝试这样做的方式。我已将每个edittext放在其自己的列表数组中,以便从edittext获取数据。我将在表格行中显示一个包含数据时间(例如12:00)的edittext的示例代码:
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);在循环内部,它会覆盖/更新表中的所有内容,使其与最后一行的内容相同。如果我在外面它只是更新最后一行。
答案 0 :(得分:1)
使用以下代码更新文字:
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