2012-05-28 23 views
0

我有一個活動是instanciates一些片段:如何使片段的onActivityCreated方法再次運行?

List<Fragment> fragments = new ArrayList<Fragment>(); 
fragments.add(Fragment.instantiate(this, HomeFragment.class.getName())); 
fragments.add(Fragment.instantiate(this, BorrowedFragment.class.getName())); 
fragments.add(Fragment.instantiate(this, LentFragment.class.getName())); 
fragments.add(Fragment.instantiate(this, PeopleFragment.class.getName())); 

這些片段鏈接到ViewPager。每個片段運行一個SELECT語句並將內容顯示爲用戶的列表。

問題是,在HomeFragment中,我有一個按鈕,單擊它時,會向用戶顯示一個表單,以便他可以向此表添加信息。當用戶添加信息時,我完成()該活動並且HomeFragment再次顯示。 當我輸入BorrowFragment時,沒有顯示任何內容。我必須swype到PeopleFragment(列表中的最後一個)並返回到BorrowedFragment。只有這樣,信息纔會顯示出來。

我目前做的是插入的信息時,唯一的一點是:

Button btDone = (Button) findViewById(R.id.buttonDone); 
     btDone.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       if(ck1.isChecked()) 
        isIOwe = true; 
       else 
        isIOwe = false; 
       insertRecord(); 
       Toast.makeText(getApplicationContext(), "Record added", Toast.LENGTH_SHORT).show(); 
       /*FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); 
       ft.add(Fragment.instantiate(ctx, PeopleFragment.class.getName()), "test"); 
       ft.commit();*/ 
       finish(); 

      } 
     }); 

我一直在想,如果有什麼東西我應該用FragmentTransaction做,才能夠重新開始的的生命週期片段。

任何幫助?

感謝, 費利佩

回答

0

我覺得在片段應該做的伎倆的getView方法執行查詢。

如果沒有,還有其他可能性。我不知道ViewPager非常好,但是如果它有一個監聽器在顯示其中的一個片段時被調用,我不會感到驚訝。如果你讓你的片段實現一個接口,讓它的後代實現一個executeQuery方法,你可以循環你的片段列表並在事件發生時調用它。

+0

嘿布拉姆。我試圖在getView的代碼,但沒有工作。另外,我無法找到任何可以幫助我實現這一目標的ViewPager監聽器,遺憾的是!謝謝您的幫助 –

相關問題