1

AlertDialog.Builder を使用して作成した次の AlertDialog があります。使用するコードは次のとおりです。

ContextThemeWrapper ctw = new ContextThemeWrapper(activity, R.style.MyTheme );
        AlertDialog.Builder builder = new AlertDialog.Builder(ctw);

        builder.setAdapter(adapter, null);
        builder.setNegativeButton(R.string.ok_btn,
                new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.cancel();
                    }
                });
        int selectRemoveButtonId = R.string.remove_all;
        for (int i = 0; i < selected.length; i++) {
            if (selected[i] == false) {
                selectRemoveButtonId = R.string.select_all;
            }
        }

        builder.setNeutralButton(selectRemoveButtonId,
                new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                    }
                });

        builder.setOnCancelListener(this);
        final AlertDialog dialog = builder.create();
        dialog.getListView().setOnItemClickListener(this);
        dialog.getListView().setDivider(new ColorDrawable(getResources().getColor(R.color.Light_Black)));
        dialog.getListView().setDividerHeight(1);
        dialog.show();

        dialog.getButton(DialogInterface.BUTTON_NEGATIVE).setBackgroundDrawable(getResources().getDrawable(R.drawable.messege_bg_selector));
        dialog.getButton(DialogInterface.BUTTON_NEGATIVE).setHeight(100);

        changeAllSelection = dialog.getButton(DialogInterface.BUTTON_NEUTRAL);
        changeAllSelection.setHeight(100);
        changeAllSelection.setBackgroundDrawable(getResources().getDrawable(R.drawable.messege_bg_selector));

        changeAllSelection.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                if (((Button) v).getText().equals(getContext().getString(R.string.select_all))) 
                {
                    ListView list = ((AlertDialog) dialog).getListView();
                    for (int i = 0; i < list.getCount(); i++) 
                    {
                        selected[i] = true;
                        list.setItemChecked(i, true);                           
                    }
                    adapter.notifyDataSetChanged();
                    ((Button) v).setText(R.string.remove_all);
                } 
                else 
                {
                    ListView list = ((AlertDialog) dialog).getListView();
                    for (int i = 0; i < list.getCount(); i++) 
                    {
                        selected[i] = false;
                        list.setItemChecked(i, false);              
                    }
                    adapter.notifyDataSetChanged();
                    ((Button) v).setText(R.string.select_all);
                }
            }
        });

結果は次のとおりです。

ここに画像の説明を入力

次に、選択したパーツを変更します。

1.ホワイトボーダーを取り除きたい。

2.ボタン部分のグレーを黒に変更したい。

誰かがこれを行う方法を知っていますか?

ありがとう。

4

1 に答える 1

0

AlertDialog から境界線を削除するには、これを試してください:

AlertDialog.Builder oAlertDialog = new AlertDialog.Builder(mContext);        
oAlertDialog.setInverseBackgroundForced(true);
于 2013-09-16T11:58:25.777 に答える