質問

主な活動には、全体の特別な方法を持つタイマーだけであるアプリがあります。これは問題なしでうまく機能します。さて、私はそれが働いているので、私はフラグメントを介して多数の場所にタイマーを挿入するつもりです。

私の断片活動に特別な方法をすべて含めるべきですか? IE:

public class Timer_fragment extends android.support.v4.app.Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        return inflater.inflate(R.layout.timer_frag, container, false);
    }
    //SHOULD I insert my special methods here?
}
.

または私はそれらを私のメインに含めるべきですか?

私は両方の方法を試していて、フラグメント活動の方法は私にJavaでエラーを与えたので尋ねていますが、それらを私のメインに置くとランタイム中にエラーが発生しました。基本的に私はスタンドアロンのアプリケーションとして素晴らしい動作をしていますが、それをフラグメントに変換しようとしているので、私はそれを私のアプリの複数の場所に接続することができます。

「特殊方法」の例: 私はレイアウトで見て、タイマーに入力された新しい番号に従って更新します。これらの方法は、それらが使用する前に膨張することを必要とする。

注:実行時のエラーは、unullPointerExceptionsです。

役に立ちましたか?

解決

フラグメントの背後にある考えは、それが他の活動で、あるいは同じ活動でさえ、他の断片の追加または非存在下でさえも使用できる活動の再構築(すなわちフラグメント)であるということである。

Gmailアプリでは、受信トレイ内のすべての電子メールのリストは1つのフラグメントであり、Eメールの実際の内容は別のフラグメントです。ランドスケープモードのタブレットでは、両方が表示されます。ただし、ポートレートモードの電話機は、一度に2つのフラグメントのうちの1つだけを表示します。

したがって、各フラグメントは、そのフラグメントを使用するのに必要なすべての機能とUI成分をカプセル化する必要があります。これは、フラグメントのビューXMLを膨張させるなど、すべての「特別な」メソッドのすべてがフラグメント内で起こるべきです。

フラグメントを利用するアクティビティ(またはアクティビティ)は、フラグメントをアクティビティのレイアウトに追加するためにFragmentManager(または同様の方法)を使用するだけでよい。フラグメントの親活動はまた、フラグメントと他のアクティビティ、フラグメント、またはスレッドなどの他のコンポーネント間の通信を処理する必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top