我有点问题。我有一个工具可能会有大量不断变化的频道,应该在布局中显示。所以我必须创建TextView来显示代码中的值。这就像一个魅力。
我的问题:
如何在我的代码中访问创建的“valueTV”字段?具体来说,我想在其中写入加速度计的值,该值存储在String SAccX中。
是否有方法在Eclipse的DDMS或Debug窗口中使用R.id.XXX查看创建的字段?
如果我尝试通过像普通XML对象那样分配来访问它,那么Eclipse会给我一个错误(类似“sAccX = (TextView) findViewById(R.id.valueTV201);
”。)我理解为什么会出现这个错误,但我不知道怎么弄错在它周围;-)
//Get Tablelayout
TableLayout ChannelTable = (TableLayout) findViewById(R.id.TableChannels);
//Create a new Row for every Channel
for (int current = 0; current < numberOfChannels; current++)
{
// Create a Table with new ID
TableRow tr = new TableRow(this);
tr.setId(100 + current);
tr.setLayoutParams(new LayoutParams(
LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT));
// Create a TextView to show the Name of the Channel
TextView TVChannels = new TextView(this);
TVChannels.setId(200 + current);
TVChannels.setText(channels[current]);
TVChannels.setTextColor(Color.DKGRAY);
TVChannels.setTextSize(20);
TVChannels.setLayoutParams(new LayoutParams(
LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT));
tr.addView(TVChannels);
// Create a TextView to house the values
TextView valueTV = new TextView(this);
valueTV.setId(200 + current);
valueTV.setTextColor(Color.DKGRAY);
TVChannels.setTextSize(20);
valueTV.setLayoutParams(new LayoutParams(
LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT));
tr.addView(valueTV);
// Add the TableRow to the TableLayout
ChannelTable.addView(tr, new TableLayout.LayoutParams(
LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT));
}
} /* End of OnCreate*/
答案 0 :(得分:0)
使用代码而不是ID
View.setTag()
然后使用
查找具有某个标签的视图findViewWithTag()