2016-07-14 2 views
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(), до сих пор рассматривают не обновляются.

ответ

0

Переместить логику от onCreate до onRestoreInstanceState().

После того, как вид воссоздан, onRestoreInstanceState будет называться и не onCreate()

+0

Хорошо, но я не в состоянии Override onRestoreInstanceState() в классе MyFragment. В чем может быть причина – Mark023

+0

Вы можете использовать onActivityCreated() во фрагменте для восстановления, но это не конструированный дизайн. Вы должны спроектировать активность для обработки изменений ориентации. – EagleEye

+0

Oh .. Я попытался в onActivityCreated(), приложение рушится – Mark023

Смежные вопросы