早上好有问题,想看看是否有人可以帮助我。
我有一些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编程的新手,我在这个论坛上已经咨询了很多,但今天是我第一次检查。
答案 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);
}