编辑android setText变量中的文本

时间:2014-06-13 09:25:53

标签: android

早上好有问题,想看看是否有人可以帮助我。

我有一些textview定义

TextView Casilla1 = (TextView) findViewById (R.id.TxtVCasilla1); 
TextView Casilla2 = (TextView) findViewById (R.id.TxtVCasilla2); 
TextView Casilla3 = (TextView) findViewById (R.id.TxtVCasilla3); 
TextView Casilla4 = (TextView) findViewById (R.id.TxtVCasilla4); 

等......最多42箱。

文本,并希望通过完全取决于此活动必须更改TextViews中的文本的月份来更改其条件。

for (int i = 1; i <30, i + +) {
             String x = "Casilla" + i; 
             x.setText (i); 
         } 

如果内部的setText识别他,那将是一件事。但它给了我错误。

有一些方法可以做到这一点吗?。

我想要的是将textview重命名为在仪表中定义的函数,将String添加为变量加上当时的计数器的编号。不知道如何识别生成的String setText函数,并且可以使用counter变量修改文本。

如果你理解我,那就不是因为我正在通过翻译写作。

原谅我的错误,因为我是论坛和android编程的新手,我在这个论坛上已经咨询了很多,但今天是我第一次检查。

3 个答案:

答案 0 :(得分:2)

你正在使用的是一个糟糕的解决方案。但如果必须,你可以参考像这样的文本视图:

for(int i=1; i<diasmes; i++) {       
    int txtViewId = getResources().getIdentifier("TxtVCasilla"+ i, "id", getPackageName());
    TextView tvCasilla=(TextView)findViewById(txtViewId);    
    tvCasilla.setText(i);
}

希望它有所帮助。

答案 1 :(得分:0)

您可以将视图存储在数组中:

TextView[] Casilla = new TextView[42];

Casilla[0] = (TextView) findViewById (R.id.TxtVCasilla1);
Casilla[1] = (TextView) findViewById (R.id.TxtVCasilla2);
// ...

稍后通过索引访问它们:

for (int i = 0; i < Casilla.length, i++) {
    Casilla[i].setText(""); 
}

只是提到替代方案,因为似乎不建议使用getIdentifier()并在ListView中显示这些可能不是您想要的(没有任何暗示它是 - 42可能是固定数字,如64例如,可以用于国际象棋棋盘。)

答案 2 :(得分:0)

您可以将Id存储在数组中:

int[] Casilla  = new int[42];
Casilla[0] = R.id.TxtVCasilla1;
Casilla[1] = R.id.TxtVCasilla2;
Casilla[2] = R.id.TxtVCasilla3;

并设置如下文字

for (int i = 0; i < Casilla.length, i++) {
 TextView casillaTextView= (TextView) findViewById (id);
 casillaTextView.setText(i); 
 }