2016-11-21 4 views
0

У меня есть фрагмент, который содержит список отдельных элементов. При щелчке элемента в представлении списка запускается действие для просмотра сведений о представлении списка. На вкладке «Активность» есть кнопка «Назад», которая возвращает нас на страницу фрагмента. После нажатия кнопки «Назад» и закрытия страницы активности я хочу, чтобы данные были обновлены в виде списка фрагментов. Я попробовал метод onResume(), но он не обновляет данные.Обновить список фрагментов списка активности назад нажмите

Может кто-то, пожалуйста, помогите мне, как достичь этого, я довольно новичок в этом.

public class FavCommittee extends Fragment { 
    public ArrayList<Committee> favCommitteeData = new ArrayList<>(); 

    @Nullable 
    @Override 

    public void onResume(){ 
     super.onResume(); 
     final SharedPreferences pref = getContext().getSharedPreferences("MyFav", 0); 
     final SharedPreferences.Editor editor = pref.edit(); 
     View rootView =getView(); 
     Map<String,?> entries = pref.getAll(); 
     final Set<String> keys = entries.keySet(); 
     int count=0; 
     for (String key:keys) { 
      String val = pref.getString(key, null); 
      String[] store = val.split(":"); 
      if (store[0].equals("committee")) 
       count=count+1; 
     } 
     for (int i=0;i<keys.size();i++) { 
      String val = pref.getString(Integer.toString(i), null); 
      if (val != null) { 
       String[] store = val.split(":"); 
       if (store[0].equals("committee")) { 
        count = count - 1; 
        new GetAllCommittees(getContext(), rootView).execute(store[1], Integer.toString(count)); 
       } 
      } 
     }  final ListView yourListView = (ListView) rootView.findViewById(R.id.house_listview); 
     yourListView.setOnItemClickListener(new android.widget.AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view,int position, long id) { 
       Committee obj = (Committee)yourListView.getItemAtPosition(position); 
       Intent intent = new Intent(FavCommittee.this.getActivity(), committee_info.class); 
       intent.putExtra("Committee",obj.getCommittee_id()); 
       startActivity(intent); 
      } 
     }); 

    } 

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     View rootView = inflater.inflate(R.layout.house, container, false); 

     return rootView; 
    } 
+0

положить код фрагмента –

+0

@RajeshKushvaha добавлено –

+0

Вы переопределили onBackpress на навигации как домашний клик в действии? я получил onResume после onBackpress и мореходства щелкнул –

ответ

0

При переходе между фрагментами, называют addToBackStack() как часть вашего FragmentTransaction:

FragmentTransaction tx = fragmentManager.beginTransation(); 
tx.replace(R.id.fragment, new MyFragment()).addToBackStack("tag").commit(); 

Если вам требуется более детальный контроль (т.е. когда некоторые фрагменты видны, вы хотите, чтобы подавить назад ключ) вы можете установить OnKeyListener на родительском представлении вашего фрагмента:

// вы должны добавить следующую строку для этого решения для работы,

fragment.getView().setFocusableInTouchMode(true); 
fragment.getView().requestFocus(); 
fragment.getView().setOnKeyListener(new OnKeyListener() 
{ 
@Override 
public boolean onKey(View v, int keyCode, KeyEvent event) 
{ 
    if(keyCode == KeyEvent.KEYCODE_BACK) 
    { 
     return true; 
    } 
    return false; 
} 
}); 
+0

его не между двумя фрагментами ... его между фрагментом и активностью –

0

getSupportFragmentManager(). BeginTransaction(). Add (R.id.fragContainer, новый FavCommittee(), FavCommittee .class.getName()). Commit();

Попробуйте этот код. Введите код, где u добавьте свой фрагмент в действии

+0

Я не добавляю фрагмент из активности ... я добавляю активность в фрагмент –

+0

ohk вы можете показать мне свой код, где Adding Activity in Fragment? –

+0

Это ваша деятельность –

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