码迷,mamicode.com
首页 > 其他好文 > 详细

View(视图)——对话框之自定义对话框

时间:2016-05-13 23:17:18      阅读:292      评论:0      收藏:0      [点我收藏+]

标签:

一.自定义对话框

     1.不能直接实例化使用

     2.使用内部构造器来生成对话框

     3.new  AlertDialog.Builder(context)  实例化构造器

        1-setTitle (标题)

        2-setMessage (消息)

        3-按钮

          1°确认按钮  setPositiveButton(“文字”,点击事件监听器)

          2°否认按钮  setNegativeButton(“文字”,点击事件监听器)

          3°中立按钮  setNeutralButton(“文字”,点击事件监听器)

        4-show() 创建后显示对话框,并返回AlertDialog实例

        5-create() 生成对话框并返回

        6-setCancelable(true/false) 

     4.Builder方法

        setView();

        1-1.用加载器加载layout文件

            1°第一种方式:LayoutInflater layoutInflater=getLayoutInflater();

                                layoutInflater.inflate();

            2°第二种方式:View.inflate(context, layout文件的id, Viewl);

        2-2.纯java代码定义View

     5.获得Layout中的组件

        调用容器的findViewById(id)

         1-加载了Layout文件的View

         2-当前自定义对话框实例,在按钮的OnClick回调方法里,AlertDialog a1 = (AlertDialog) dialog;

 

二.自定义对话框

   1.用加载器加载layout文件方法

技术分享
 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout  xmlns:android="http://schemas.android.com/apk/res/android"
 3     xmlns:tools="http://schemas.android.com/tools"
 4     android:layout_width="match_parent"
 5     android:layout_height="match_parent"
 6     android:paddingBottom="@dimen/activity_vertical_margin"
 7     android:paddingLeft="@dimen/activity_horizontal_margin"
 8     android:paddingRight="@dimen/activity_horizontal_margin"
 9     android:paddingTop="@dimen/activity_vertical_margin"
10     tools:context="com.example.wang.testapp2.TestActivity5"
11     android:orientation="vertical">
12 
13 
14     <Button
15         android:layout_width="match_parent"
16         android:layout_height="wrap_content"
17         android:text="自定义对话框"
18         android:onClick="bt4_OnClick"
19         />
20 
21 
22 
23 </LinearLayout>
用加载器加载layout文件方法
技术分享
 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:orientation="vertical" android:layout_width="match_parent"
 4     android:layout_height="match_parent">
 5 
 6     <ImageView
 7         android:layout_width="wrap_content"
 8         android:layout_height="wrap_content"
 9         android:src="@drawable/car"
10         android:layout_gravity="center"/>
11 </LinearLayout>
Dialoglayout
技术分享
 1 package com.example.wang.testapp2;
 2 
 3 import android.app.AlertDialog;
 4 import android.app.DatePickerDialog;
 5 import android.app.TimePickerDialog;
 6 import android.content.DialogInterface;
 7 import android.opengl.ETC1Util;
 8 import android.support.v7.app.AppCompatActivity;
 9 import android.os.Bundle;
10 import android.view.LayoutInflater;
11 import android.view.View;
12 import android.widget.DatePicker;
13 import android.widget.EditText;
14 import android.widget.ImageView;
15 import android.widget.TimePicker;
16 import android.widget.Toast;
17 
18 import java.util.Calendar;
19 
20 public class TestActivity5 extends AppCompatActivity {
21 
22     @Override
23     protected void onCreate(Bundle savedInstanceState) {
24         super.onCreate(savedInstanceState);
25         setContentView(R.layout.activity_test5);
26 
27     }
28 
29     //自定义对话框
30     public void bt4_OnClick(View v)
31     {
32         //1.layout文件加载器
33         LayoutInflater layoutInflater=getLayoutInflater();
34 
35         View view=layoutInflater.inflate(R.layout.dialoglayout, null);
36 
37         //2.View的静态方法
38 //        View view=View.inflate(this, R.layout.dialoglayout, null);
39 
40 
41 
42         new AlertDialog.Builder(this)
43                 .setTitle("自定义对话框")
44 
45                 //.setView(R.layout.dialoglayout)
46                 .setView(view)
47 
48                 .setPositiveButton("确定", null)
49 
50                 .show();
51     }
52 
53 }
用加载器加载layout文件方法

技术分享

 

     2.纯java代码定义View

技术分享
 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout  xmlns:android="http://schemas.android.com/apk/res/android"
 3     xmlns:tools="http://schemas.android.com/tools"
 4     android:layout_width="match_parent"
 5     android:layout_height="match_parent"
 6     android:paddingBottom="@dimen/activity_vertical_margin"
 7     android:paddingLeft="@dimen/activity_horizontal_margin"
 8     android:paddingRight="@dimen/activity_horizontal_margin"
 9     android:paddingTop="@dimen/activity_vertical_margin"
10     tools:context="com.example.wang.testapp2.TestActivity5"
11     android:orientation="vertical">
12 
13 
14     <Button
15         android:layout_width="match_parent"
16         android:layout_height="wrap_content"
17         android:text="自定义对话框"
18         android:onClick="bt4_OnClick"
19         />
20 
21 
22 </LinearLayout>
纯java代码定义View
技术分享
 1 package com.example.wang.testapp2;
 2 
 3 import android.app.AlertDialog;
 4 import android.app.DatePickerDialog;
 5 import android.app.TimePickerDialog;
 6 import android.content.DialogInterface;
 7 import android.opengl.ETC1Util;
 8 import android.support.v7.app.AppCompatActivity;
 9 import android.os.Bundle;
10 import android.view.LayoutInflater;
11 import android.view.View;
12 import android.widget.DatePicker;
13 import android.widget.EditText;
14 import android.widget.ImageView;
15 import android.widget.TimePicker;
16 import android.widget.Toast;
17 
18 import java.util.Calendar;
19 
20 public class TestActivity5 extends AppCompatActivity {
21 
22     @Override
23     protected void onCreate(Bundle savedInstanceState) {
24         super.onCreate(savedInstanceState);
25         setContentView(R.layout.activity_test5);
26 
27     }
28 
29     //自定义对话框
30     public void bt4_OnClick(View v)
31     {
32         
33         //3.java代码
34         ImageView view=new ImageView(this);
35 
36         view.setImageResource(R.drawable.ccc);
37 
38 
39         new AlertDialog.Builder(this)
40                 .setTitle("自定义对话框")
41 
42                 //.setView(R.layout.dialoglayout)
43                 .setView(view)
44 
45                 .setPositiveButton("确定", null)
46 
47                 .show();
48     }
49 
50 }
纯java代码定义View

技术分享

 

三.登录对话框

技术分享
 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout  xmlns:android="http://schemas.android.com/apk/res/android"
 3     xmlns:tools="http://schemas.android.com/tools"
 4     android:layout_width="match_parent"
 5     android:layout_height="match_parent"
 6     android:paddingBottom="@dimen/activity_vertical_margin"
 7     android:paddingLeft="@dimen/activity_horizontal_margin"
 8     android:paddingRight="@dimen/activity_horizontal_margin"
 9     android:paddingTop="@dimen/activity_vertical_margin"
10     tools:context="com.example.wang.testapp2.TestActivity5"
11     android:orientation="vertical">
12 
13 
14     <Button
15         android:layout_width="match_parent"
16         android:layout_height="wrap_content"
17         android:text="登录对话框"
18         android:onClick="bt5_OnClick"
19         />
20 
21 
22 </LinearLayout>
登录
技术分享
 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:orientation="vertical"
 4     android:layout_width="match_parent"
 5     android:layout_height="match_parent"
 6     android:layout_margin="16dp">
 7 
 8     <EditText
 9         android:layout_width="match_parent"
10         android:layout_height="wrap_content"
11         android:hint="用户名"
12         android:id="@+id/et_1"
13         android:layout_margin="16dp"/>
14 
15     <EditText
16         android:layout_width="match_parent"
17         android:layout_height="wrap_content"
18         android:hint="密码"
19         android:inputType="textPassword"
20         android:id="@+id/et_2"
21         android:layout_margin="16dp"/>
22 </LinearLayout>
Dialog_login
技术分享
 1 package com.example.wang.testapp2;
 2 
 3 import android.app.AlertDialog;
 4 import android.app.DatePickerDialog;
 5 import android.app.TimePickerDialog;
 6 import android.content.DialogInterface;
 7 import android.opengl.ETC1Util;
 8 import android.support.v7.app.AppCompatActivity;
 9 import android.os.Bundle;
10 import android.view.LayoutInflater;
11 import android.view.View;
12 import android.widget.DatePicker;
13 import android.widget.EditText;
14 import android.widget.ImageView;
15 import android.widget.TimePicker;
16 import android.widget.Toast;
17 
18 import java.util.Calendar;
19 
20 public class TestActivity5 extends AppCompatActivity {
21 
22     @Override
23     protected void onCreate(Bundle savedInstanceState) {
24         super.onCreate(savedInstanceState);
25         setContentView(R.layout.activity_test5);
26 
27     }
28 
29     //登录对话框
30     public void bt5_OnClick(View v)
31     {
32         final View view=View.inflate(this,R.layout.dialog_login,null);
33 
34         new AlertDialog.Builder(this)
35                 .setTitle("登录对话框")
36                 .setView(view)
37                 .setPositiveButton("登录", new DialogInterface.OnClickListener() {
38                     @Override
39                     public void onClick(DialogInterface dialog, int which) {
40 
41                         //转换
42                         AlertDialog a1 = (AlertDialog) dialog;
43 
44                         //获取输入信息
45                         EditText et_1 = (EditText) view.findViewById(R.id.et_1);
46 
47                         Toast.makeText(TestActivity5.this, "用户名=" + et_1.getText(), Toast.LENGTH_SHORT).show();
48 
49                         //验证并提示
50 
51                     }
52                 })
53                 .setNegativeButton("取消", null)
54                 .show();
55 
56     }
57 
58 }
登录

技术分享技术分享

 

 

 

 

 

 

      

 

View(视图)——对话框之自定义对话框

标签:

原文地址:http://www.cnblogs.com/arxk/p/5491212.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!