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

标签 android sqlite android-edittext tablelayout

我创建了一个表格布局,通过单击按钮动态添加表格行。每个表行由三个编辑文本组成。每个编辑文本显示从 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/

相关文章:

android - 禁用 EditText 但接收触摸/点击事件

android - 如何防止同一 fragment 在 Android 架构导航组件中多次打开?

当绘制设置为 Stroke 时,Android Canvas.drawTextOnPath 看起来不正确

java - 同时播放多个剪辑android studio - 使用线程?

android - 如何在Android应用程序中同步服务器数据?

android - 如何将字符串值插入对话消息?

相机中的android如何在api 14或更高版本中设置可聚焦区域

sqlite - 设置列的默认值 : the value of another column

android - 安装/升级应用程序时有没有办法更新数据库?

android - MaterialAlertDialogBu​​ilder 在自定义 View editText 上崩溃