访问代码生成的TextView资源

时间:2011-08-01 09:55:25

标签: android dynamic textview

我有点问题。我有一个工具可能会有大量不断变化的频道,应该在布局中显示。所以我必须创建TextView来显示代码中的值。这就像一个魅力。

我的问题:

  1. 如何在我的代码中访问创建的“valueTV”字段?具体来说,我想在其中写入加速度计的值,该值存储在String SAccX中。

  2. 是否有方法在Eclipse的DDMS或Debug窗口中使用R.id.XXX查看创建的字段?

  3. 如果我尝试通过像普通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*/
    

1 个答案:

答案 0 :(得分:0)

使用代码而不是ID

View.setTag()

然后使用

查找具有某个标签的视图
findViewWithTag()