按下按钮时更改“文本视图”的背景图像

时间:2018-10-11 12:47:54

标签: android android-studio

每当用户按下按钮时,TextView的文本以及TextView的背景图像都会改变。我创建了一个int[] array来存储要在TextView.setBackgroundResource(array[index])中使用的drawable的ID。但是在增加index时,背景不会改变。我什至尝试使用array[]的硬编码索引,但它仍设置第一个元素图像。

 //j and drawable array are global variable.
 int j=1;
 int[] drawablearray=new int[]{R.drawable.girl,R.drawable.beach,R.drawable.flower};

 nextButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
                if(j<drawablearray.length-1){
                    j++;
                    quoteTextView.setBackgroundResource(drawablearray[j]);
                    quoteTextView.getBackground().setAlpha(150);
                }else{
                    j=0;
                    quoteTextView.setBackgroundResource(drawablearray[j]);
                    quoteTextView.getBackground().setAlpha(150);
         } 
    });

4 个答案:

答案 0 :(得分:0)

在您的代码中一切正常。

您是否正确初始化了CascadeType.ALL

您的点击可能无效。

更新

我已经更新了您的代码:

nextButton

对于前3次点击,它将显示三个不同的图像,然后设置为默认图像

答案 1 :(得分:-1)

您的while read line; do if [[ $line =~ del ]] ; then echo $line; fi done < file NM_003924.3:c.765_779delGGCAGCGGCGGCAGC NM_003924.3:c.765_779delGGCAGCinsGGCGGCAGC 变量必须为'global'。这意味着它必须是您的jActivity的成员,而不是方法内部的变量

答案 2 :(得分:-1)

建议您使用“ if”条件代替:

j = (j+1) % drawablearray.length;

然后,变量j必须是您的Java类的字段(在每个方法之外声明它)

答案 3 :(得分:-1)

不确定自己在循环中得到了什么,但是尝试这种方式将有助于您按顺序设置阵列中的图像。

int j=0;
int[] drawablearray=new int[]{R.drawable.girl,R.drawable.beach,R.drawable.flower};

 @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    quoteTextView.setBackgroundResource(drawablearray[j]);
    quoteTextView.getBackground().setAlpha(150);
    j++;

 nextButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            if(j < drawablearray.length) {

                quoteTextView.setBackgroundResource(drawablearray[j]);
                quoteTextView.getBackground().setAlpha(150);
                j++;
            }
           else
            {
                j = 0;
                quoteTextView.setBackgroundResource(drawablearray[j]);
                quoteTextView.getBackground().setAlpha(150);
                j++;
            }
        }
    });

}