gpt4 book ai didi

android - 滚动网格时在 gridview 的情况下重复图像?

转载 作者:行者123 更新时间:2023-11-29 14:06:59 24 4
gpt4 key购买 nike

我正在使用带有布局充气器示例的 GridView 。

我正在从 sdcard 中选择图像,图像的名称和文本是从 string.txt 文件中检索的。

当我在模拟器(宽屏)上测试时它工作正常但是当我在模拟器上检查它时屏幕相当于真实设备(分辨率:240 x 320 QVGA)当我转到最后一个时它会滚动行第一张图片也在最后一行重复。

我的字符串文件包含

01.png;http://abc.com/01.png;Text1|02.png;http://abc.com/02.png;Text2|03.png;http://abc.com/03.png;Text3|04.png;http://abc.com/04.png;Text4|05.png;http://abc.com/05png;Text5|06.png;http://abc.com/06.png;Text6|07.png;http://abc.com/07.png;Text7|08.png;http://abc.com/08.png;Text8|09.png;http://abc.com/09.png;Text9|10.png;http://abc.com/10.png;Text10|11.png;http://abc.com/11.png;Text11|12.png;http://abc.com/12.png;Text12

我的代码如下:

    public View getView(final int position, View convertView, ViewGroup parent) {
View v=convertView;
//String text;
final ImageView picturesView;
String[] newtext = null;
if (convertView == null) {
LayoutInflater li = getLayoutInflater();
v = li.inflate(R.layout.icon, null);
//File sdcard = Environment.getExternalStorageDirectory();
File file = new File(path,"string.txt");
//StringBuilder stext = new StringBuilder();
TextView tv = (TextView)v.findViewById(R.id.icon_text);
String[] columns = null;
//String[] url = null;


try {
BufferedReader br = new BufferedReader(new FileReader(file));
String line;

while ((line = br.readLine()) != null) {
columns = line.split("\\|");

}
}
catch (IOException e) {
//You'll need to add proper error handling here
}
newtext=columns[position].split("\\;");

tv.setText(newtext[2]);
tv.setTextSize(12);
tv.setTextColor(Color.BLACK);

mUrl = path+"s/"+newtext[0];

name=newtext[0];

url=newtext[1];

final Bitmap mBitmap = BitmapFactory.decodeFile(mUrl);
picturesView=(ImageView)v.findViewById(R.id.icon_image);
picturesView.setImageBitmap(mBitmap);
picturesView.setTag(R.id.icon_image,name);
picturesView.setTag(R.id.icon_text,url);
picturesView.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
imgname=(String) v.getTag(R.id.icon_image);
imgurl=(String) v.getTag(R.id.icon_text);
// TODO Auto-generated method stub
String cimagename;
String oimagename;
String cUrl;
String oUrl;

if (selectedImage != null) {
oimagename=selectedImage;
oUrl = path+"s/"+oimagename;
Bitmap oBitmap = BitmapFactory.decodeFile(oUrl);
selectedView.setImageBitmap(oBitmap);
}
selectedImage = imgname;
selectedView = (ImageView) v;
cimagename=imgname;
cUrl = path+"c/"+cimagename;
Bitmap cBitmap = BitmapFactory.decodeFile(cUrl);
picturesView.setImageBitmap(cBitmap);

}
});


}


return v;
}

我尝试通过 Toast.makeText 方法手动检查 name 的值,即(01.png 到 12.png)它运行良好,最多 9 个元素(无需滚动即可使用的元素)它显示 01.png 到 09.png 但是然后它再次显示 01.png 而不是 10.png 然后显示 11.png 然后 12.png。

我无法理解为什么 01.png 会出现两次?我完全坚持这一点。

最佳答案

关闭if语句

if (convertView == null) {            
LayoutInflater li = getLayoutInflater();
v = li.inflate(R.layout.icon, null);
} //<--add this and remove the closing brace you currently have at the above the return v;

关于android - 滚动网格时在 gridview 的情况下重复图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6303095/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com