5

私は考えを持っていますが、それを実装する方法がわかりません

最初にダイアログがあります

final Dialog dialog = new Dialog(mContext);

レイアウトもあります

<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/textViewTitle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:gravity="center_horizontal"
        android:text="Large Text"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <TextView
        android:id="@+id/textViewDescription"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:gravity="center_horizontal"
        android:text="Small Text"
        android:textAppearance="?android:attr/textAppearanceSmall" />

    <TextView
        android:id="@+id/textViewWhen"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:gravity="center_horizontal"
        android:text="Medium Text"
        android:textAppearance="?android:attr/textAppearanceMedium" />

</LinearLayout>

ダイアログにこのレイアウトを追加したいのですが、ダイアログ内のそのすぐ下に同じレイアウトをさらに追加したい場合があります。どうすればよいですか?

たとえば、このレイアウトを1つのダイアログに2つ追加するにはどうすればよいですか?何かのようなもの


  Dialog Title

   Large Text
   Small Text
   Medium Text


   Large Text
   Small Text
   Medium Text
4

5 に答える 5

8

このようなもの:

LayoutInflater li = LayoutInflater.from(SomeActivity.this);
someLayout = (LinearLayout)li.inflate(R.layout.some_layout, null);

alert = new AlertDialog.Builder(SettingsActivity.this);
alert.setView(someLayout);
于 2012-08-27T13:53:07.317 に答える
3

This is an example from my application:

public class ConfirmDialog extends DialogFragment {

public static String TAG = "Confirm Dialog";

public interface ConfirmDialogCompliant {
    public void doOkConfirmClick();
    public void doCancelConfirmClick();
}

private ConfirmDialogCompliant caller;
private String message;

public ConfirmDialog(ConfirmDialogCompliant caller, String message){
    super();
    this.caller = caller;
    this.message = message;
}

public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    final View view = inflater.inflate(R.layout.confirm_dialog, container, false);
    getDialog().requestWindowFeature(Window.FEATURE_NO_TITLE);
    ((TextView) view.findViewById(R.id.textview_confirm)).setText(message);
    ((Button) view.findViewById(R.id.ok_confirm_button)).setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            // When button is clicked, call up to owning activity.
            caller.doOkConfirmClick();
        }
    });
    ((Button) view.findViewById(R.id.cancel_confirm_button)).setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            // When button is clicked, call up to owning activity.
            caller.doCancelConfirmClick();
        }
    });
    return view;
}

}

where the inflated layout is confirm_dialog.xml.
You inflate your layout in the onCreateView method.
In this case I used DialogFragment (which I suggest you to use...see the support library so that you don't have to worry about your target SDK) but the same applies to Dialog.
Hope it helps you!

于 2012-08-27T13:52:06.140 に答える
2

ダイアログにカスタムレイアウトを追加する方法を説明するこのドキュメントページを確認できます

http://developer.android.com/guide/topics/ui/dialogs.html#CustomDialog

鍵はsetContentView方法です:

dialog.setContentView(R.layout.custom_dialog);
于 2012-08-27T13:50:20.660 に答える
2

これをチェックしてください:

画像に示されているようなカスタマイズされた警告ダイアログを取得する方法は?

私が与えた答えを参照してください (Aamir Shah)

于 2012-10-04T08:42:50.130 に答える
1

を使用するDialogFragmentと、他の と同様にFragment、レイアウトを完全にカスタマイズできます。v4 サポート ライブラリで利用できます。

http://developer.android.com/reference/android/app/DialogFragment.html

http://developer.android.com/tools/extras/support-library.html

于 2012-08-27T13:50:46.033 に答える