Android 每当按下按钮时更改文本视图的背景图像

Android 每当按下按钮时更改文本视图的背景图像,android,android-studio,Android,Android Studio,每当用户按下按钮时,TextView的文本以及TextView的背景图像都会发生更改。我创建了一个int[]数组来存储可在TextView.setBackgroundResourcearray[index]中使用的drawable的id。但在增加索引时,背景不会改变。我甚至尝试了数组[]的硬编码索引,但它仍然设置了第一个元素映像 //j and drawable array are global variable. int j=1; int[] drawablearray=new int[

每当用户按下按钮时,TextView的文本以及TextView的背景图像都会发生更改。我创建了一个int[]数组来存储可在TextView.setBackgroundResourcearray[index]中使用的drawable的id。但在增加索引时,背景不会改变。我甚至尝试了数组[]的硬编码索引,但它仍然设置了第一个元素映像

 //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);
         } 
    });

您的j变量必须为“全局”。这意味着它必须是活动或片段的成员,而不是方法中的变量,而不是我建议您使用的if条件:

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

那么变量j必须是java类的一个字段,在每个方法之外声明它,代码中似乎一切正常

你是否正确地初始化了下一个按钮

可能你的点击不起作用

更新

我已更新了您的代码:

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{
                quoteTextView.setBackgroundResource(R.drawable.girl);
                quoteTextView.getBackground().setAlpha(150);
            }
        }
    });

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

尝试减少else块上的J:J-@Ayush最初您是否在没有循环条件或阵列偏差的情况下进行了检查?直接分配给文本视图是否有效?@mohamedmohaidenah是否有效。第一个图像设置为TextView的背景,但单击“下一步”按钮时,它不会更改。我甚至尝试将索引硬编码为1,但它仍然将图像设置为元素0。由于循环条件,它只能工作一次。。起初它只设置flower drawable。@MohamedMohaidenah我的变量j=1仍然设置girl drawable。我的变量j不在方法内。它是一个全局变量。全局并不意味着只有activityMy nextButton的成员才能正常工作。我还修改了quoteTextView的文本,效果很好。你的代码对我来说非常有用。最后一次尝试清理->重建您的项目如果是,在最坏的情况下,请确保您的绘图是唯一的:让我们。