我需要创建一个textview数组,我想根据位置显示或隐藏一个图像。 我会试着解释一下: 我有一个类似的布局:
1 2 3 4 5
依赖随机值显示或隐藏textview 1或2中的图像等等......
我可以使用:
if (a == 4)
{
t4.setBackgroundResource(R.drawable.ficha);
t1.setBackgroundDrawable(null);
t2.setBackgroundDrawable(null);
t3.setBackgroundDrawable(null);
t5.setBackgroundDrawable(null);
}
else if (a==5)
...
..
但是我想知道,如果可以使用参数或类似的东西传递数字t(1)。
提前致谢并对我的英语感到抱歉。
答案 0 :(得分:3)
查看以下代码段;
/*
* Initializes the textViewArray
* You can call this from onCreate.
*/
private void setViews() {
// Declared at class level as private TextView[] textViewArray = null;
textViewArray = new TextView[3];
textViewArray[0] = (TextView) findViewById(R.id.infoText0);
textViewArray[1] = (TextView) findViewById(R.id.infoText1);
textViewArray[2] = (TextView) findViewById(R.id.infoText2);
// Button to demonstrate the functionality
switchButton = (Button) findViewById(R.id.switchButton);
switchButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(imgIndex >= textViewArray.length) {
imgIndex=0;
}
showTextViewImage(imgIndex++);
}
});
}
/*
* Sets the background image only for the textView specified by index
*/
private void showTextViewImage(int index) {
setTitle("" + index);
// First remove the backgroud images from all textviews
for(TextView textView : textViewArray) {
textView.setBackgroundDrawable(null);
}
// If you are using a common image for all textViews, use this
textViewArray[index].setBackgroundResource(R.drawable.ficha);
// If you are using different image for every textView, then use this.
/*
switch (index) {
case 0:
textViewArray[0].setBackgroundResource(R.drawable.ficha0);
break;
case 1:
textViewArray[1].setBackgroundResource(R.drawable.ficha1);
break;
case 2:
textViewArray[2].setBackgroundResource(R.drawable.ficha2);
break;
...
...
...
}
*/
}
希望,你明白了。
答案 1 :(得分:2)
你可以像这样创建textview数组......
TextView tv[];
tv = new TextView[5];
您可以使用切换案例来显示或隐藏图片...
答案 2 :(得分:1)
或者您可以使用List<TextView> tvList = new ArrayList<TextView>();
添加任意数量的文字视图
这将根据您的a
值检索文本视图并从列表中设置背景:
((TextView)tvList.get(a)).setBackgroundResource(R.drawable.ficha+a.....);
第1个第2个,依此类推。当然,你也可以使用数组。
希望它有助于升技