尝试在片段内重新加载方法

时间:2018-08-25 22:52:28

标签: android android-fragments firebase-realtime-database android-recyclerview

已经有一段时间了,但是我正在制作一个使用fragments的火种/聊天应用程序。 chat fragment内部是一个recyclerview,它从Firebase Database获取数据。当您单击fragment内部的聊天时,它将带您进入Chat Activity。一切都按应有的方式进行,但我遇到了这一问题。我一直很难收到最近发送的消息。用户发送消息时,将在push id中创建一个database。起初,我试图获取最后一个推送ID并获取消息,但是我遇到了问题,我的recyclerview只会重新填充并将项目添加到现有的recyclerview中。

所以现在,我创建了一个名为child的{​​{1}},每次发送新消息时都会更改它。我的lastMessage从此recyclerview获得了value,没有问题,只有打开应用程序时它才会获得该值。我希望child中的recyclerview打开时,fragmentfragmentbackpress内的方法只是刷新并返回到{{ 1}}。我尝试了这些的不同变体,但它们最终都崩溃了:

尝试过:

Chat Activity

还有这个

Chat Fragment

}

还有更多类似的东西,但似乎无法使其正常工作。谁能帮我这个?我尝试在我的FragmentManager fm = getSupportFragmentManager(); YourFragmentClass fragment = (YourFragmentClass)fm.findFragmentById(R.id.your_fragment_id); fragment.method(); 中调用该方法,但最终也崩溃了。我只是希望@Override public void setUserVisibleHint(boolean isVisibleToUser) { super.setUserVisibleHint(isVisibleToUser); if (isVisibleToUser) { // Refresh your fragment here } Chat Activity刷新,就像关闭应用程序并将其重新加载一样,但是当我method进入fragment时。我的代码如下:

  

主要活动

backpress
  

片段聊天

Chat Activity
  

聊天活动

 public class MainFragmentActivity extends AppCompatActivity {
private SectionsPageAdapter mSectionsPageAdapter;
private ViewPager mViewPager;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main_fragment);

    mSectionsPageAdapter = new SectionsPageAdapter(getSupportFragmentManager());

    //Setup the Viewpager with sections adapter
    mViewPager = (ViewPager) findViewById(R.id.container);
    mViewPager.setOffscreenPageLimit(5);
    setupViewPager(mViewPager);

    TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);
    tabLayout.setupWithViewPager(mViewPager);

}

private void setupViewPager(ViewPager viewPager){
    SectionsPageAdapter adapter = new SectionsPageAdapter(getSupportFragmentManager());
    adapter.addFragment(new Fragment_Account(), "Account");
    adapter.addFragment(new Fragment_Swipes(), "Matches");
    adapter.addFragment(new Fragment_MatchChats(), "Chat");
    viewPager.setAdapter(adapter);
}

1 个答案:

答案 0 :(得分:0)

尝试覆盖片段中的onResume(),然后检查FirebaseDB