ImageViewer Together with TextView PREV and NEXT



所以我在应用程序上制作了一个imageViewer,该应用程序使用计数来浏览所有图片。通过使用下一个和上级按钮。现在,我正在尝试添加一个文本视图以进行使用。因此,我在下面做了另一个文本视图,然后尝试了此代码:

   View.OnClickListener nButtonChangeImageListener = new View.OnClickListener() {
        public void onClick(View view) {
            //Increase Counter to move to next Image
            currentImage--;
            currentImage = (currentImage + images.length) % images.length;
            imageView.setImageResource(images[currentImage]);
            if(currentImage == img1){
                textView4.setText("My Awesome Text");
            }
        }
    };

更新:我尝试过,但是是的。

view.onclicklistener nbuttonChangeImageListener = new View.OnClickListener(({

public void onClick(View view) {
    //Increase Counter to move to next Image
    currentImage--;
    currentImage = (currentImage + images.length) % images.length;
     String img1 = "img1";
    String comparable = imageView.toString();
    imageView.setImageResource(images[currentImage]);
    if(comparable == img1){
        textView4.setText("My Awesome Text");
    }
}

};

这是我的下一个和上一个按钮的侦听器。我发现使用if语句,if(currentImage == img1)我可以将文本视图与其自己的图像匹配。假设IMG1我将其设置为"很棒的文本"

不幸的是,它行不通,我认为将currentImage作为字符串,但不允许。这是另一种方法?也许我在片段上做错了什么?

这是一种可能的解决方案,在其中您将文本引用与图像数组相同的lenght数组中保持:

  View.OnClickListener buttonChangeImageListener = new View.OnClickListener() {

    public void onClick(View view) {
        //Increase Counter to move to next Image and Text
        current++;
        current = current % images.length;
        imageView.setImageResource(images[current]);
        textView4.setText(texts[current]);

    }
};

编辑:定义文本数组的一种方法是:

String []texts = {"Text1","Text2",...,"TextN"};

所以阵列将具有与图片一样多的字符串。

另一种方法是定义弦线中的字符串(就像图片一样(。在res/values下添加一个新文件,并将其调用,例如 texts.xml 。texts.xml看起来像这样:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="text1">This is text 1</string>
    <string name="text2">This is text 2</string>
     ....
    <string name="textN">This is text N</string>
</resources>

然后在您的代码中

int [] texts = {R.string.text1, R.string.text2,...,R.string.textN} ;

获取文本:

textView4.setText(getResources().getString(texts[current]));

看来您遇到了麻烦。尝试从盒子里思考!

我敢打赌,您正在使用整数来浏览列表。像该电流图设置为0。

所以这是另一个评价,所以听,

设置另一个整数,假设:

private int currentText = 0;

然后:

  View.OnClickListener bButtonChangeImageListener = new View.OnClickListener() {

        public void onClick(View view) {
            //Increase Counter to move to next Image
            currentImage++;
            currentText++;
            currentImage = currentImage % images.length;
            imageView.setImageResource(images[currentImage]);
            if (currentText == 1)
            {
                textView4.setText("AwesomeText");
            }
            if (currentText == 2)
            {
                textView4.setText("AwesomeText1");
            }
            if (currentText == 0)
            {
                textView4.setText("AwesomeText2");
            }

        }
    };

    View.OnClickListener nButtonChangeImageListener = new View.OnClickListener() {
        public void onClick(View view) {
            //Increase Counter to move to next Image
            currentImage--;
            currentText--;
            currentImage = (currentImage + images.length) % images.length;
            if (currentText == 1)
            {
                textView4.setText("AwesomeText");
            }
            if (currentText == 2)
            {
                textView4.setText("AwesomeText1");
            }
            if (currentText == 0)
            {
                textView4.setText("AwesomeText2");
            }




        }
    };

沿着这些线!

最新更新