与几个班级分享一个片段?

时间:2012-05-20 12:36:34

标签: java android android-fragments

我想知道如何才能最好地创建进度条片段。它必须可以被其他所有课程使用。

目前我只有一个ProgressBarFragment,它有公共的setVisible方法。通过FragmentManager获取片段我可以将其设置为可见或不可见。但这是采取这些行动的正确方法吗?

public class MyActivity exetends FragmentActivity {
    void setVisibility(int visible) {
        ProgressBarFragment fragment = (ProgressBarFragment) getSupportFragmentManager().findFragmentById(R.id.fragment_progress_bar);
        fragment.setProgressBar(visible);
    }
}

当然,我还有其他几个使用此代码的片段,以触发进度条。

public class ProgressBarFragment extends Fragment {
    public void setProgressBar(int visible) {
        progressBar = (ProgressBar) getActivity().findViewById(R.id.progress_bar);
        progressBar.setVisibility(visible);
    }
}

1 个答案:

答案 0 :(得分:1)

您可以将此代码重构为ProgressBarFragment

的静态方法
class ProgressBarFragment {
    //...
    static void setVisibility(Activity parent, int visible) {
           ProgressBarFragment progressBar =
                   (ProgressBarFragment)parent.getSupportFragmentManager()
                   .findFragmentById(R.id.fragment_progress_bar);
    progressBar.setProgressBar(visible);
    //...
}

那么你将在任何地方使用ProgressBarFragment.setVisibility(yourActivity, 1)