0

必要なことを実行する非常に優れたダイアログがあります。しかし、私はそれを新しい標準に更新する必要があります。

これは私の現在のダイアログです:

public class MyProgressDialog extends Dialog {

    private MyProgressDialog dialog;

    public MyProgressDialog(Context context) {
        super(context);
    }

    public MyProgressDialog show(Context context) {
        dialog = new MyProgressDialog(context);
        dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
        dialog.setContentView(R.layout.progress);
        dialog.getWindow().setBackgroundDrawableResource(
                android.R.color.transparent);
        dialog.setCanceledOnTouchOutside(false);
        dialog.show();
        return dialog;
    }

    public void dismiss(Context context) {

        dialog.dismiss();

    }

}

私はこの非フラグメントダイアログをすでにフラグメントとリストフラグメント(サポートライブラリ4を使用)でProgressDialogsとして使用しています。残念ながら、複数のフラグメントがあるページでは、それらは互いに積み重なっているだけです。したがって、各ダイアログを各フラグメントに関連付けたいと思います。

onPreExecute()私は自分のそれぞれの中でこのようにダイアログを呼び出しますTask

dialog = new MyProgressDialog(getActivity());

現在の設定を必要に応じて調整することは可能ですか、それともこれを最初から完全にやり直す必要がありますか?私はグーグルからのすべてのサンプルを見ました、そして、私は私がしていることに近くさえ見るものをあまり見つけることができません。この移行についてガイダンスをいただけますか?それがリンク、コードサンプル、または調査するアイデアであるかどうか。

以下のコメントに応じて編集してください:

@Override
public Fragment getItem(int position) {
    Fragment f = null;
    switch (position) {
    case 0: {
        f = new RateFragment();
        Bundle args = new Bundle();
        f.setArguments(args);
        break;
    }
    case 1: {
        f = new ReviewFragment();
        Bundle args = new Bundle();

        f.setArguments(args);
        break;
    }
    default:
        throw new IllegalArgumentException("not this many fragments: "
                + position);
    }

    return f;

}

このためのタブレットレイアウト:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/frags"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >

    <fragment
        android:id="@+id/cat_frag"
        android:layout_width="450dp"
        android:layout_height="match_parent"
        class="com.---.---.RateFragmentActivity$RateFragment" />

    <LinearLayout
        android:layout_width="4dp"
        android:layout_height="match_parent"
        android:background="#222" />

    <fragment
        android:id="@+id/featured_frag"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        class="com.---.---.RateFragmentActivity$ReviewFragment" />

</LinearLayout>
4

1 に答える 1

1

したがって、各ダイアログを各フラグメントに関連付けたいと思います。

DialogFragment作業をトリガーした対応するフラグメントの上にダイアログを表示する場合は、ダイアログを通常のダイアログとして配置するため、を使用することはできません。

代わりに、カスタムのような通常Fragment の形状を使用して、通常のフラグメント/コンテンツの上にProgressDialogあるコンテナー(RelativeLayoutまたは)にアタッチすることができます。FrameLayout

現在の設定を必要に応じて調整することは可能ですか、それともこれを最初から完全にやり直す必要がありますか?

複数のフラグメントを持つページがそれらのフラグメントをラッパーレイアウトに配置する場合、それは非常に簡単です。そうでない場合は、現在のレイアウトをどのように構築したかに応じて、簡単または非常に難しい変更を加える必要があります。

于 2013-01-27T17:00:58.133 に答える