0

プログレスバーフラグメントを作成するにはどうすればよいのでしょうか。もちろん、他のすべてのクラスで使用できる必要があります。

現時点では、パブリックsetVisibleメソッドを持つProgressBarFragmentだけがあります。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);
    }
}
4

1 に答える 1

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)そのため、どこでも使用できます。

于 2012-05-20T12:46:35.970 に答える