如何在tablelayout中使用动态创建的edittext更新sqlite表?

时间:2014-09-17 15:43:45

标签: android sqlite android-edittext tablelayout

我创建了一个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);在循环内部,它会覆盖/更新表中的所有内容,使其与最后一行的内容相同。如果我在外面它只是更新最后一行。

1 个答案:

答案 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