Android 从“动态内容”选项卡获取控件/视图
我已经从数据库中创建了选项卡及其内容。现在,我需要帮助了解如何从这些控件中获取用户输入的值-如何获取选项卡上的控件列表(以便保存数据)。下面是我如何填充选项卡内容的浓缩示例:Android 从“动态内容”选项卡获取控件/视图,android,tabcontrol,Android,Tabcontrol,我已经从数据库中创建了选项卡及其内容。现在,我需要帮助了解如何从这些控件中获取用户输入的值-如何获取选项卡上的控件列表(以便保存数据)。下面是我如何填充选项卡内容的浓缩示例: public View createTabContent(String tag) { SQLiteDatabase db2 = openOrCreateDatabase(msDbFile, MODE_PRIVATE, null); Cursor cList = db2.rawQuery("SELECT * FROM Che
public View createTabContent(String tag)
{
SQLiteDatabase db2 = openOrCreateDatabase(msDbFile, MODE_PRIVATE, null);
Cursor cList = db2.rawQuery("SELECT * FROM CheckList WHERE CatID=" + tag, null);
TableLayout tl = new TableLayout(FormChecklist.this);
tl.setBackgroundColor(new Color().WHITE);
while(cList.moveToNext())
{
/* Create a new row to be added. */
TableRow tr = new TableRow(FormChecklist.this);
tr.setLayoutParams(new LayoutParams(
LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT));
/* Create the row-content. */
TextView lblQuestion = new TextView(FormChecklist.this);
lblQuestion.setText(cList.getString(2));
lblQuestion.setTag(tag);
/* Add control to row. */
tr.addView(lblQuestion);
CheckBox chkCompleted = new CheckBox(FormChecklist.this);
chkCompleted.setText("Completed");
chkCompleted.setLayoutParams(new LayoutParams(
LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT));
chkCompleted.setTag(tag);
/* Add control to row. */
tr.addView(chkCompleted);
/* Add row to TableLayout. */
tl.addView(tr,new TableLayout.LayoutParams(
LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT));
}
db2.close();
return tl;
}
没有回复,但最终发现,希望有人会发现这些信息很有用。 我采取的方法是修改我的createTabContent,为TableLayout添加一个ID:
tl.setId(1000 + miTlCnt);
然后,在我的保存例程中,我循环使用如下控件:
for (int i = 1000 + miTlCnt; i > 1000; i--)
{
TableLayout tl = (TableLayout)findViewById(i);
if (tl != null)
{
for (int j = 0; j < tl.getChildCount(); j++)
{
TableRow row = (TableRow)tl.getChildAt(j);
CheckBox chkCompleted = (CheckBox)row.getChildAt(1);
}
}
}
for(int i=1000+miTlCnt;i>1000;i--)
{
TableLayout tl=(TableLayout)findViewById(i);
如果(tl!=null)
{
对于(int j=0;j