如何从Android中的活动刷新片段?

AndroidNewBee

我在其中一个片段中有一个浮动按钮,单击时会弹出一个活动,现在的问题是当我从活动返回到片段时,片段不会自动刷新,我也想在按下时刷新。在片段中,我在操作栏中有一个刷新按钮,按下该按钮会调用refreshFragment()方法.android中是否有一种方法可以从活动中的片段中调用方法。这是我的refreshFragment()方法代码。

  public void refreshFragment()
    {
        Fragment fragment = new BillingFragment();
        android.support.v4.app.FragmentManager fragmentMg = getActivity().getSupportFragmentManager();
        FragmentTransaction fragmentTrans = fragmentMg.beginTransaction();
        fragmentTrans.replace(R.id.container_body, fragment, "TABBILLING");
        fragmentTrans.addToBackStack(null);
        fragmentTrans.commit();
        ((AppCompatActivity) getActivity()).getSupportActionBar().setTitle("Billing");
        //adapter.notifyDataSetChanged();

    }

我在on create view方法中调用它,如下所示:-

((MainActivity)getActivity()).setFragmentRefreshListener(new MainActivity.FragmentRefreshListener()
        {
            @Override
            public void onRefresh() {
                refreshFragment();
            }
        });

我什至尝试通过如下创建MainActivity对象来从另一个活动中调用主活动的displayView()方法:

 public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case android.R.id.home:
                super.onBackPressed();
                MainActivity main = new MainActivity();
                main.displayView(1);
                count = 0;
                return true;

但这给了我一个空指针异常,这是我的displayView()方法。

 public void onDrawerItemSelected(View view, int position) {
        displayView(position);
    }

    public void displayView(int position) {
        Fragment fragment = null;

        String title = getString(R.string.app_name);
        switch (position) {
            case 0:
                fragment = new HomeFragment();
                title = getString(R.string.title_home);
                break;
            case 1:
                fragment = new BillingFragment();
                title =getString(R.string.title_billing);
                break;
            case 2:
                fragment = new StockViewFragment();
                title =getString(R.string.title_stockview);
                break;
            case 3:
                fragment = new BhishiManagementFragment();
                title= getString(R.string.title_bhishiview);
                break;
            case 4:
                fragment = new ReportingFragment();
                title=getString(R.string.title_reporting);
                break;
            case 5:
                fragment = new VendorManagementFragment();
                title=getString(R.string.title_vendormanagement);
                break;
            case 6:
                fragment = new CustomerMgmt();
                title = getString(R.string.title_custmgmt);
                break;

            default:
                break;
        }

任何帮助表示赞赏。谢谢:)

大师_VL

我假设您正在从活动返回时尝试刷新片段(该活动不托管需要刷新的片段),如果我的假设正确,请尝试以下方法,以防不提供更多信息来阐明问题。

尝试:在片段中有一个布尔变量,并使用其生命周期方法根据片段可见状态更新其值true或false。

public class SampleFragment extends Fragment {

    private boolean shouldRefreshOnResume = false;

    public static SampleFragment newInstance() {
        SampleFragment fragment = new SampleFragment();
        return fragment;
    }

    public SampleFragment() {
        // Required empty public constructor
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    @Override
    public View onCreateView(LayoutInflater inflater, 
                         ViewGroup container,
                         Bundle savedInstanceState) {
        return inflater.inflate(R.layout.fragment_blank, 
                                              container, false);
    }

    @Override
    public void onResume() {
        super.onResume();
        // Check should we need to refresh the fragment
        if(shouldRefreshOnResume){
            // refresh fragment
        }
    }

    @Override
    public void onStop() {
        super.onStop();
        shouldRefreshOnResume = true;
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Android中完成活动后如何刷新片段?

来自分类Dev

如何在Android中刷新片段

来自分类Dev

如何刷新片段?

来自分类Dev

从其父活动刷新片段

来自分类Dev

从其父活动刷新片段

来自分类Dev

刷新片段中的recyclerview

来自分类Dev

在FragmentActivity中刷新片段

来自分类Dev

刷新片段,而不是主要活动

来自分类Dev

从活动回来后刷新片段

来自分类Dev

如何从活动更新片段

来自分类Dev

如何从片段 A 刷新片段 B?

来自分类Dev

在向Android应用中的活动添加新片段时出错

来自分类Dev

如何从父级活动中更新片段内的数据

来自分类Dev

Android刷新片段内的ViewPager

来自分类Dev

Android:单击按钮后从另一个活动刷新/更新片段

来自分类Dev

Android:单击按钮后从另一个活动刷新/更新片段

来自分类Dev

如何从操作栏菜单刷新片段

来自分类Dev

如何从操作栏菜单刷新片段

来自分类Dev

Android如何在选项卡更改时停止刷新片段

来自分类Dev

Android,我无法刷新片段数据?

来自分类Dev

Recyclerview 不使用 viewpager 刷新片段中的数据

来自分类Dev

从fragmentActivity刷新片段UI

来自分类Dev

从fragmentActivity刷新片段UI

来自分类Dev

关闭已打开的活动,因此主要活动可以更新片段,而不会在Android中丢失状态

来自分类Dev

关闭在Adapter中启动的活动后,如何刷新先前的片段?

来自分类Dev

更改父活动上的切换按钮后刷新片段

来自分类Dev

如何从活动中更新Android片段?

来自分类Dev

如何从Android中的片段开始活动?

来自分类Dev

如何在不承载该片段的活动中刷新从 Listview 接收数据的片段中的 Textview