Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Android网格视图以相反的顺序加载大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
每当我改变手机的方向时,我都会看到网格视图中项目的顺序相反,即第一个位置的内容现在结束,依此类推.

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

我在清单文件添加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) {
            Lay@R_489_9981@nflater li = getLay@R_489_9981@nflater();
            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网格视图以相反的顺序加载所遇到的程序开发问题。

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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。