0

Я хочу отправить данные с помощью пакета и получить их в другом фрагменте.Сбой после изменения фрагмента экрана

Моя проблема заключается в том, что приложение сработает, когда я меняю ориентацию экрана на Фрагмент Получить.

Вот часть моего кода:

Фрагмент Receive:

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 

    View view = inflater.inflate(R.layout.fragment_actuality, container, false); 

    ImageLoader imageLoader = AppController.getInstance().getImageLoader(); 

    ImageView networkImageView = (ImageView)view.findViewById(R.id.thumbnail); 

    Bundle bundle = getArguments(); 

    textcontent = (TextView)view.findViewById(R.id.content); 
    texttitle = (TextView)view.findViewById(R.id.title); 
    textdate = (TextView)view.findViewById(R.id.date); 
    textweb = (TextView)view.findViewById(R.id.web); 



    textcontent.setText(Html.fromHtml(bundle.getString("article"))); 
    textdate.setText("le " + bundle.getString("date")); 
    texttitle.setText(bundle.getString("title")); 
    textweb.setText("Pour plus d'information : " + bundle.getString("urlweb")); } 

ответ

0

Добавьте эту строку в вашу деятельность в манифесте:

android:configChanges="keyboardHidden|orientation|screenSize" 
+0

своей работой спасибо вам – user3083055

0

При вращении, ваш фрагмент воссоздан, onCreateView() будет называться снова и getArguments будет нулевым. Поэтому вам нужно сохранить данные в onSaveInstanceState() и в onCreateView(), добавить, если savedInstanceState имеет значение null, вы получаете данные от getArgument(), иначе вы получите данные от savedInstanceState.

1

Вы всегда должны проверить нуль при использовании свертка

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 

    View view = inflater.inflate(R.layout.fragment_actuality, container, false); 
    ImageLoader imageLoader = AppController.getInstance().getImageLoader(); 
    ImageView networkImageView = (ImageView)view.findViewById(R.id.thumbnail); 

     textcontent = (TextView)view.findViewById(R.id.content); 
     texttitle = (TextView)view.findViewById(R.id.title); 
     textdate = (TextView)view.findViewById(R.id.date); 
     textweb = (TextView)view.findViewById(R.id.web); 


     if(savedInstanceState!=null){ 
     textcontent.setText(Html.fromHtml(bundle.getString("article"))); 
     textdate.setText("le " + bundle.getString("date")); 
     texttitle.setText(savedInstanceState.getString("title")); 
     textweb.setText("Pour plus d'information : "savedInstanceState.getString("urlweb")); 
} 
Смежные вопросы