gpt4 book ai didi

Android GridView 以相反的顺序加载

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:32:44 26 4
gpt4 key购买 nike

每当我改变手机的方向时,我都会看到 GridView 中的项目顺序颠倒,即位于第一个位置的现在位于末尾,依此类推。

我怎样才能摆脱这个问题?根据点击的位置,我正在调用不同的 Activity 。但是因为顺序改变了,当屏幕方向改变时调用了错误的 Activity 。

我在 list 文件中添加了 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, R.drawable.icon, R.drawable.icon,
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 看起来很可疑。我认为您需要使用该位置所需的图像和文本更新 View 。 (否则,您只是在重复使用缓存的 View ,在重建网格时,它很可能以错误的顺序提供给您。)

1) 作为测试,尝试使用 if (convertView == null) { 分支,即使它不是 null,看看是否修复了它。 (这会在滚动或旋转时不必要地膨胀新 View ,所以不要这样。)

2) 如果这确实解决了问题,您可以通过在其中找到您的 R.id.home_icon_text 等并针对convertView != null 分支中的当前位置

关于Android GridView 以相反的顺序加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6277805/

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