2016-11-21 94 views
0

我有一個片段,其中包含一些項目的列表視圖。單擊列表視圖中的項目時,將啓動「活動」以查看有關列表視圖的詳細信息。 Activity上有一個後退按鈕,它將我們帶回到片段頁面。一旦按下後退按鈕並關閉活動頁面,我希望在片段列表視圖中刷新數據。我嘗試過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 on navigation作爲主頁點擊活動?我onResponse 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,new FavCommittee(),FavCommittee .class.getName())。commit();

試試看看這個代碼。 把代碼添加到活動中的代碼片段

+0

我不加活動片段...我在片段中添加活動 –

+0

ohk你能告訴我你的代碼在片段中添加活動嗎? –

+0

這是你的活動 –