因项目需要,需要一个弹出对话框,但对话框的布局和界面不是默认的,而是需要自己自定义的界面
(一)先实例化一个Builder对象
AlertDialog.Builder addDialog = new AlertDialog.Builder(Context);
参数:Context是上下文
(二)自定义布局add_address_dialog.xml,这个布局就是你自己弹出对话框的布局,我这里就要我的
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#ffffff" > <TextView android:id="@+id/title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="26sp" android:text="新增地址" /> <View style="@style/horizontal_layout" android:id="@+id/titleLine" android:layout_below="@+id/title" android:layout_width="match_parent" /> <TextView android:id="@+id/contentTitle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_below="@+id/titleLine" android:textSize="20sp" android:text="当前位置" /> <LinearLayout android:id="@+id/contentShow" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_below="@+id/contentTitle" android:layout_marginTop="20dp" android:orientation="horizontal" > <TextView android:id="@+id/altitued" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="20sp" android:text="经度:" /> <TextView android:id="@+id/altituedText" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="20sp" android:text="NULL" /> <TextView android:id="@+id/longtitued" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="60dp" android:textSize="20sp" android:text="纬度:" /> <TextView android:id="@+id/longtituedText" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="20sp" android:text="NULL" /> </LinearLayout> <View style="@style/horizontal_layout" android:id="@+id/contentLine" android:layout_below="@+id/contentShow" android:layout_width="match_parent" android:layout_marginTop="20dp" /> <LinearLayout android:id="@+id/addressEdit" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/contentLine" android:layout_centerHorizontal="true" android:orientation="horizontal" > <TextView android:id="@+id/addressName" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:textSize="18sp" android:text="地点名称:" /> <EditText android:id="@+id/addressNameText" android:layout_width="300dp" android:layout_height="wrap_content" android:textSize="18sp" /> </LinearLayout> </RelativeLayout>
(三)将布局转化为View控件
View view = View.inflate(MainActivity.context, R.layout.add_address_dialog, null);
要是不明白参数可以百度一下
(四)只要将转化的View控件加载就可以了
addDialog.setView(view);//加载自定义布局 addDialog.show();//显示对话框
总结:Builder易用而且还灵活,可以加载自己的布局,而且它还有两个按钮属性addDialog.setPositiveButton(CharSequence text,OnClickListener listener)和addDialog.setNegativeButton(CharSequence text,OnClickListener listener),以我的理解前者是肯定按钮,后者是否定按钮。如果有什么不对的大家可以指正,大家相互交流学习,哈哈,,,
新闻热点
疑难解答