所以我在应用程序上制作了一个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");
}
}
};
沿着这些线!