我想在表格中创建5种不同类型的单元格以及标识符,并根据给定的数据根据类型适当加载它们? 在TableLayout中创建TableRow似乎是其中一个选项,但如何根据类型动态创建tableRows?
提前完成。
答案 0 :(得分:0)
你能检测出执行时的类型吗?如果是,则应使用开关或if else结构直接进行。
根据行类型使用在运行时对XML资源进行膨胀:
((LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE))
.inflate(layoutId, yourTableLayout, true);
在充气资源之前设置适当的 layoutId ,然后继续。参数 yourTableLayout 和 true 只是我的猜测,请查看LayoutInflater处的文档,然后选择适合您需要的膨胀方法。
动态创建TableRows ,本教程可能有所帮助:Creating TableRow rows inside a TableLayout programatically
基本上:
1-获取TableLayout并创建TableRow
// Get the TableLayout
TableLayout tl = (TableLayout) findViewById(R.id.maintable);
TableRow tr = new TableRow(this);
tr.setId(100+current);
tr.setLayoutParams(new LayoutParams(
LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT));
2-创建要添加的元素
TextView labelTV = new TextView(this);
labelTV.setId(200+current);
labelTV.setText(provinces[current]);
labelTV.setTextColor(Color.BLACK);
labelTV.setLayoutParams(new LayoutParams(
LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT));
tr.addView(labelTV);
3-将TableRow添加到TableLayout
// Add the TableRow to the TableLayout
tl.addView(tr, new TableLayout.LayoutParams(
LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT));
似乎很容易和快速,我没有测试过它。