如何TextView数组

时间:2012-02-13 11:58:20

标签: android

我需要创建一个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)。

提前致谢并对我的英语感到抱歉。

3 个答案:

答案 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个,依此类推。当然,你也可以使用数组。


希望它有助于升技