Всякий раз, когда я меняю ориентацию телефона, я вижу, что порядок элементов в виде сетки меняется на противоположный, то есть то, что было в первой позиции, теперь приходит в конец и т. Д.
Как мне избавиться от этой проблемы? Основываясь на выбранной позиции, я использую различные виды деятельности. Но поскольку порядок меняется, при изменении ориентации экрана вызываются неправильные действия.
Я добавил 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();
}
}
});