0

ImageViewとTextViewを含む2つのネストされたLinearLayoutを持つメインLinearLayoutを含むカスタムダイアログボックスを作成しようとしています。

しかし、問題は、LinearLayout のどれも表示されないことです。エラーも発生せず、アプリケーションはクラッシュしません。

ありがとうございました。

以下は、この問題に関連するコード セグメントです。

AlertDialog.Builder builder = new AlertDialog.Builder(this);

        ll_main = new LinearLayout(AddFreebie.this);
        ll_main.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,
                LayoutParams.WRAP_CONTENT));
        ll_main.setGravity(Gravity.CENTER);
        ll_main.setOrientation(LinearLayout.VERTICAL);

        ll_bpic = new LinearLayout(AddFreebie.this);
        ll_bpic.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,
                LayoutParams.WRAP_CONTENT));
        ll_bpic.setGravity(Gravity.CENTER);
        ll_bpic.setOrientation(LinearLayout.HORIZONTAL);
        iv_bpic = new ImageView(AddFreebie.this);
        iv_bpic.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,
                LayoutParams.WRAP_CONTENT));
        tv_bpic = new TextView(AddFreebie.this);
        tv_bpic.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,
                LayoutParams.WRAP_CONTENT));
        tv_bpic.setText("Browse phone for pictures..");

        ll_bpic.addView(iv_bpic);
        ll_bpic.addView(tv_bpic);

        ll_cpic = new LinearLayout(AddFreebie.this);
        ll_cpic.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,
                LayoutParams.WRAP_CONTENT));
        ll_cpic.setGravity(Gravity.CENTER);
        ll_cpic.setOrientation(LinearLayout.HORIZONTAL);
        iv_cpic = new ImageView(AddFreebie.this);
        iv_cpic.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,
                LayoutParams.WRAP_CONTENT));
        tv_cpic = new TextView(AddFreebie.this);
        tv_cpic.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,
                LayoutParams.WRAP_CONTENT));
        tv_cpic.setText("Take pictures using camera.");
        ll_cpic.addView(iv_cpic);
        ll_cpic.addView(tv_cpic);

        ll_main.addView(ll_bpic);
        ll_main.addView(ll_cpic);

        builder.setView(ll_main);
        builder.setCancelable(true);
        builder.setPositiveButton("Yes",
                        new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog,
                                    int id) {
                                // MyActivity.this.finish();
                            }
                        })
                .setNegativeButton("No",
                        new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog,
                                    int id) {
                                dialog.cancel();
                            }
                        });
        AlertDialog alert = builder.create();
        alert.show();
4

1 に答える 1

2

私は間違っているかもしれませんが、この場合、AlertDialog が本当に使いたいとは思いません。AlertDialogs の開発者ページを読んだ場合、それらは実際には小さな 0、1、2、または 3 個のボタンのアラート ウィンドウに使用されるものであり、独自の真のカスタム インターフェイスを持つことを意図したものではありません。ここに AlertDialogs に関するいくつかのリンクがあります

http://www.helloandroid.com/tutorials/how-display-alertdialog-your-android-application

あなたがやりたいことをするために、あなたはDialoglogかPopupWindowを使いたいと思います

カスタム ダイアログの作成へのリンク: http://developer.android.com/guide/topics/ui/dialogs.html#CustomDialog

カスタム ポップオーバー ウィンドウの作成へのリンク (過去に使用したことがあります): http://www.mobilemancer.com/2011/01/08/popup-window-in-android/

于 2012-05-24T15:37:13.857 に答える