AlertDialog

要做这么一个提示界面。

最开始选用的是AlertDialog但是由于AlertDialog的setview方法设置界面之后,界dialog的上下端都会出现露底。界面之难看明显是不能符合设计要求的。。

然后就考虑了用popwindow来实现但是在实现过程中发现popwindow来做很难把握好界面的宽度和摆放的位置。 其次考虑个人因为研究Dialog已经花去了一些时间使用还是选用Dialog来实现。

最终实现Dialog。。AlertDialog露底必定是在封装Dialog的时候默认实现了一些东西,所以导致我们很难修改,所以选择直接创建Dialog实现。

接着问题就来了,第一,创建的Dialog的宽度怎么设置?

解决办法:考虑到不同机型的适配,所以采用的是根据子控件的内容来设置宽度,在布局文件中又包裹了一个布局,然后在这个布局中来实现和界面的边距。

问题2:样式问题。包括两个样式:一是Dialog的样式,二是布局的样式。

Dialog的样式我是已经解决了,布局的样式就是一些圆角之类的。

由于钻了些胡同所以花费了不少时间。。。

总结遇到问题不要慌,逐步的分析问题的原因,一个一个的解决问题。

private void alertTelecomFlowDialog() {

LayoutInflaterlayoutInflater = LayoutInflater.from(this);

ViewdialogView = layoutInflater.inflate(R.layout.dialog_telecom_flow,

null);

ButtonBtsure = (Button) dialogView.findViewById(R.id.Bt_sure);

ButtonBtcancel = (Button) dialogView.findViewById(R.id.Bt_cancel);

finalCheckBox Cbnoagainalert = (CheckBox) dialogView

.findViewById(R.id.Cb_noagainalert);

finalDialog alertDialog = new Dialog(LogoActivity.this,

R.style.dialog_telecom_flow);

alertDialog.setContentView(dialogView);

Btsure.setOnClickListener(newOnClickListener() {

@Override

publicvoid onClick(View v) {

alertDialog.cancel();

if(Cbnoagainalert.isChecked()) {

}

}

});

Btcancel.setOnClickListener(newOnClickListener() {

@Override

publicvoid onClick(View v) {

}

});

alertDialog.show();

}

dialog_telecom_flow.xml

<?xml version="1.0"encoding="utf-8"?>

<RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:gravity="center"

android:layout_gravity="center"

android:background="@drawable/telecom_flow_frame" >

<RelativeLayout

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="center"

android:layout_marginLeft="40dp"

android:layout_marginRight="40dp"

android:gravity="center"

android:paddingBottom="20dip"

>

<TextView

android:id="@+id/Tv_telecom_appname"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:layout_marginTop="10dp"

android:gravity="center"

android:textColor="@color/zi2"

android:text="@string/app_name"

android:textSize="20sp" />

<TextView

android:id="@+id/Tv_user_instructions"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:layout_below="@id/Tv_telecom_appname"

android:gravity="center"

android:textColor="@color/zi2"

android:text="@string/user_instructions"

android:textSize="19sp" />

<TextView

android:id="@+id/Tv_flow_explain"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:layout_below="@id/Tv_user_instructions"

android:layout_marginLeft="0dip"

android:layout_marginRight="0dip"

android:layout_marginTop="20dip"

android:textColor="@color/zi2"

android:text="@string/flow_explain"

android:textSize="17sp" />

<TextView

android:id="@+id/Tv_operate_explain"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:layout_below="@id/Tv_flow_explain"

android:layout_marginLeft="0dip"

android:layout_marginRight="0dip"

android:textColor="@color/zi2"

android:layout_marginTop="10dip"

android:text="@string/operate_explain"

android:textSize="17sp" />

<RelativeLayout

android:id="@+id/Rl_noagainalert"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:layout_below="@+id/Tv_operate_explain"

android:layout_marginLeft="0dip"

android:layout_marginRight="0dip"

android:layout_marginTop="20dip"

android:gravity="center_horizontal"

android:textSize="17sp" >

<CheckBox

android:id="@+id/Cb_noagainalert"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginLeft="10dip"

android:button="@drawable/btn_checkbox"

android:checked="true" />

<TextView

android:id="@+id/Tv_operate_explain"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:layout_centerHorizontal="true"

android:layout_centerVertical="true"

android:layout_marginLeft="2dip"

android:textColor="@color/zi2"

android:layout_toRightOf="@id/Cb_noagainalert"

android:text="@string/sharecheck_textview"

android:textSize="17sp" />

</RelativeLayout>

<RelativeLayout

android:id="@+id/Rl_butten"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:layout_below="@+id/Rl_noagainalert"

android:layout_marginTop="20dip"

android:gravity="center_horizontal" >

<Button

android:id="@+id/Bt_sure"

android:layout_width="60dip"

android:layout_height="wrap_content"

android:textColor="@color/white"

android:background="@drawable/title_button"

android:text="@string/sure" />

<Button

android:id="@+id/Bt_cancel"

android:layout_width="60dip"

android:layout_height="wrap_content"

android:layout_marginLeft="20dip"

android:layout_toRightOf="@id/Bt_sure"

android:background="@drawable/title_button"

android:textColor="@color/white"

android:text="@string/cancel"/>

</RelativeLayout>

</RelativeLayout>

</RelativeLayout>

你可能感兴趣的:(AlertDialog)