Android网格视图以相反的顺序加载

Android网格视图以相反的顺序加载,第1张

概述每当我改变手机的方向时,我都会看到网格视图中项目的顺序相反,即第一个位置的内容现在结束,依此类推. 我该怎样摆脱这个问题?根据点击的位置,我正在调用不同的活动.但由于订单发生变化,因此在更改屏幕方向时会调用错误的活动. 我在清单文件中添加了android:configChanges =“orientation | keyboardHidden”. 任何帮助表示赞赏. 适配器类: class Ima 每当我改变手机的方向时,我都会看到网格视图中项目的顺序相反,即第一个位置的内容现在结束,依此类推.

我该怎样摆脱这个问题?根据点击的位置,我正在调用不同的活动.但由于订单发生变化,因此在更改屏幕方向时会调用错误的活动.

我在清单文件中添加了android:configChanges =“orIEntation | keyboardHIDden”.

任何帮助表示赞赏.

适配器类:

class ImageAdapter extends BaseAdapter {    Context mContext;    private String[] mHome_icon_text = { "A","B","C","D","E","F" };    private Integer[] mHome_icon_image = { R.drawable.icon,R.drawable.icon,};    public ImageAdapter(Context c) {        mContext = c;    }    @OverrIDe    public int getCount() {        // Todo auto-generated method stub        return mHome_icon_text.length;    }    @OverrIDe    public Object getItem(int position) {        return null;    }    public long getItemID(int position) {        return 0;    }    @OverrIDe    public VIEw getVIEw(int position,VIEw convertVIEw,VIEwGroup parent) {        // Todo auto-generated method stub        VIEw v;        if (convertVIEw == null) {            LayoutInflater li = getLayoutInflater();            v = li.inflate(R.layout.home_grID_vIEw_item,null);            TextVIEw tv = (TextVIEw) v.findVIEwByID(R.ID.home_icon_text);            tv.setText(mHome_icon_text[position]);            ImageVIEw iv = (ImageVIEw) v.findVIEwByID(R.ID.home_icon_image);            iv.setimageResource(mHome_icon_image[position]);        } else {            v = convertVIEw;        }        return v;    }}

在主要班级:

grID_main.setonItemClickListener(new OnItemClickListener() {    public voID onItemClick(AdapterVIEw<?> parent,VIEw v,int position,long ID) {        Intent i;        switch (position) {        case 0:            // start A            i = new Intent(Home.this,com.da.A.class);            startActivity(i);            break;        case 3: //Cactivity            i = new Intent(Home.this,com.da.C.class);            startActivity(i);            break;        default:            Toast                    .makeText(Home.this,"" + position,Toast.LENGTH_SHORT).show();        }    }});
解决方法 那个v = convertVIEw看起来很可疑.我认为您需要使用该位置所需的图像和文本更新视图. (否则,您只是重新使用缓存视图,当重建网格时,可能会以错误的顺序将其提供给您.)

1)作为测试,尝试使用if(convertVIEw == null){branch,即使它不是null,看看是否修复它. (这会在滚动或旋转时不必要地增加新视图,所以不要这样.)

2)如果确实修复了它,你可以通过在其中找到你的R.ID.home_icon_text等正确地回收以前膨胀的convertVIEw,并为convertVIEw!= null分支中的当前位置更新它.

总结

以上是内存溢出为你收集整理的Android网格视图以相反的顺序加载全部内容,希望文章能够帮你解决Android网格视图以相反的顺序加载所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1129579.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存