0
У меня есть класс адаптера MyAdapter
-Просмотр не обновляется после изменения ориентации
@Override
public void bindView(View view, Context context, Cursor cursor) {
ViewHolder viewHolder = (ViewHolder) view.getTag();
viewHolder.time.setText(strText);
viewHolder.time.setTextColor(0xff000000);
viewHolder.time.setTextSize(17);
viewHolder.time.setVisibility(View.VISIBLE);
viewHolder.time.setBackgroundColor(nColor);
viewHolder.time.setPadding(25,25,25,25);
MyFragment my= new MyFragment();
my.setLandScape1(strText,nColor);
view.invalidate();
}
}
В MyFragment
,
public void setLandScape1(String time1,int time_Bcolor1){
this.delay_time1 = time1;
this.delay_time_BColor1 = time_Bcolor1;
}
@Override
public void onSaveInstanceState(Bundle outState) {
outState.putString("Time",delay_time1);
outState.putInt("BColor",delay_time_BColor1);
super.onSaveInstanceState(outState);
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (savedInstanceState != null) {
delay_time1 = savedInstanceState.getString("Time");
Log.d("hi","delay_time1 = " + delay_time1);
delay_time_BColor1 = savedInstanceState.getInt("BColor");
Log.d("hi","delay_time_BColor1 =" + delay_time_BColor1);
} }
Логи -
При повороте по горизонтали,
delay_time1 = 45
delay_time_BColor1 = 65000
снова при повороте по вертикали,
delay_time1 = 0
delay_time_BColor1 = 0
Почему это становится 0
, когда повернулся к портрету и почему в пейзаже, хотя, я получаю значение в onCreate()
, до сих пор рассматривают не обновляются.
Хорошо, но я не в состоянии Override onRestoreInstanceState() в классе MyFragment. В чем может быть причина – Mark023
Вы можете использовать onActivityCreated() во фрагменте для восстановления, но это не конструированный дизайн. Вы должны спроектировать активность для обработки изменений ориентации. – EagleEye
Oh .. Я попытался в onActivityCreated(), приложение рушится – Mark023