标签:
1.代码运行目录
AndroidManifest.xml
1 <?xml version="1.0" encoding="utf-8"?> 2 <manifest xmlns:android="http://schemas.android.com/apk/res/android" 3 package="com.example.administrator.android"> 4 5 <application 6 android:allowBackup="true" 7 android:icon="@mipmap/ic_launcher" 8 android:label="@string/app_name" 9 android:supportsRtl="true" 10 android:theme="@style/AppTheme"> 11 <activity android:name=".MainActivity" /> 12 <activity android:name=".TestActivity4" /> 13 <activity android:name=".Main2Activity" /> 14 <activity android:name=".Main3Activity"> 15 <intent-filter> 16 <action android:name="android.intent.action.MAIN" /> 17 <category android:name="android.intent.category.LAUNCHER" /> 18 </intent-filter> 19 </activity> 20 <activity android:name=".Main5Activity"></activity> 21 </application> 22 23 </manifest>
2.布局文件
activity_mani.xml
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 tools:context="com.example.administrator.android.Main3Activity" 7 android:orientation="vertical"> 8 <!--对话框--> 9 <Button 10 android:layout_width="match_parent" 11 android:layout_height="wrap_content" 12 android:text="一般对话框" 13 android:onClick="bt1_onclick"/> 14 <Button 15 android:layout_width="match_parent" 16 android:layout_height="wrap_content" 17 android:text="单选对话框" 18 android:onClick="bt2_onclick"/> 19 <Button 20 android:layout_width="match_parent" 21 android:layout_height="wrap_content" 22 android:text="复选对话框" 23 android:onClick="bt3_onclick"/> 24 <Button 25 android:layout_width="match_parent" 26 android:layout_height="wrap_content" 27 android:text="自定义对话框" 28 android:onClick="bt4_onclick"/> 29 <Button 30 android:layout_width="match_parent" 31 android:layout_height="wrap_content" 32 android:text="登录对话框" 33 android:onClick="bt5_onclick"/> 34 <Button 35 android:layout_width="match_parent" 36 android:layout_height="wrap_content" 37 android:text="日期对话框" 38 android:onClick="bt6_onclick"/> 39 <Button 40 android:layout_width="match_parent" 41 android:layout_height="wrap_content" 42 android:text="时间对话框" 43 android:onClick="bt7_onclick"/> 44 <Button 45 android:layout_width="match_parent" 46 android:layout_height="wrap_content" 47 android:text="普通进度对话框" 48 android:onClick="bt8_onclick"/> 49 </LinearLayout>
截屏如下:
3.各种对话框的运行JAVA代码。
Mani3Activity.java
第一种:一般对话框
1 package com.example.administrator.android; 2 3 import android.app.AlertDialog; 4 import android.app.DatePickerDialog; 5 import android.app.Dialog; 6 import android.app.ProgressDialog; 7 import android.app.TimePickerDialog; 8 import android.content.DialogInterface; 9 import android.support.v7.app.AppCompatActivity; 10 import android.os.Bundle; 11 import android.text.Layout; 12 import android.view.LayoutInflater; 13 import android.view.View; 14 import android.widget.DatePicker; 15 import android.widget.EditText; 16 import android.widget.TimePicker; 17 import android.widget.Toast; 18 import java.util.Calendar; 19 20 public class Main3Activity extends AppCompatActivity { 21 22 23 @Override 24 protected void onCreate(Bundle savedInstanceState) { 25 super.onCreate(savedInstanceState); 26 setContentView(R.layout.activity_main3); 27 } 28 public void bt1_onclick(View v) { 29 //一般对话框 不能直接实例化 30 //内部提供构造器 31 //方法链调用 32 AlertDialog alertDialog = new AlertDialog.Builder(this) 33 .setTitle("确认对话框") 34 .setMessage("您确实要删除吗?") 35 .setNegativeButton("取消", new DialogInterface.OnClickListener() { 36 @Override 37 public void onClick(DialogInterface dialog, int which) { 38 Toast.makeText(Main3Activity.this, "取消删除……,which = " + which, Toast.LENGTH_SHORT).show(); 39 } 40 })//负面按钮 41 42 .setPositiveButton("确认", new DialogInterface.OnClickListener() { 43 @Override 44 public void onClick(DialogInterface dialog, int which) { 45 Toast.makeText(Main3Activity.this, "执行删除……,which = " + which, Toast.LENGTH_SHORT).show(); 46 } 47 })//正面按钮 48 49 .setNeutralButton("中立", new DialogInterface.OnClickListener() { 50 @Override 51 public void onClick(DialogInterface dialog, int which) { 52 Toast.makeText(Main3Activity.this, "执行命令……,which = " + which, Toast.LENGTH_SHORT).show(); 53 } 54 })//普通按钮 55 .setCancelable(false) //杜绝点击其他位置关闭对话框 不能以分号结尾 56 .show(); //显示对话框的方法 57 } 58 }
第二种:单选对话框
1 package com.example.administrator.android; 2 3 import android.app.AlertDialog; 4 import android.app.DatePickerDialog; 5 import android.app.Dialog; 6 import android.app.ProgressDialog; 7 import android.app.TimePickerDialog; 8 import android.content.DialogInterface; 9 import android.support.v7.app.AppCompatActivity; 10 import android.os.Bundle; 11 import android.text.Layout; 12 import android.view.LayoutInflater; 13 import android.view.View; 14 import android.widget.DatePicker; 15 import android.widget.EditText; 16 import android.widget.TimePicker; 17 import android.widget.Toast; 18 import java.util.Calendar; 19 20 public class Main3Activity extends AppCompatActivity { 21 22 23 @Override 24 protected void onCreate(Bundle savedInstanceState) { 25 super.onCreate(savedInstanceState); 26 setContentView(R.layout.activity_main3); 27 } 28 //单选对话框 29 public void bt2_onclick(View v) { 30 //final,中态 延长常量生命周期 31 final String[] str = {"男", "女"}; 32 final AlertDialog a = new AlertDialog.Builder(this) 33 .setTitle("单选对话框") 34 .setSingleChoiceItems(str, 0, new DialogInterface.OnClickListener() { 35 @Override 36 public void onClick(DialogInterface dialog, int which) { 37 Toast.makeText(Main3Activity.this, "which = " + which + 38 ",选中的是:" + str[which], Toast.LENGTH_LONG).show(); 39 //关闭对话框 40 dialog.dismiss(); 41 } 42 }) 43 .setCancelable(false) //模态窗口 44 .show(); 45 } 46 }
第三种:复选对话框
1 package com.example.administrator.android; 2 3 import android.app.AlertDialog; 4 import android.app.DatePickerDialog; 5 import android.app.Dialog; 6 import android.app.ProgressDialog; 7 import android.app.TimePickerDialog; 8 import android.content.DialogInterface; 9 import android.support.v7.app.AppCompatActivity; 10 import android.os.Bundle; 11 import android.text.Layout; 12 import android.view.LayoutInflater; 13 import android.view.View; 14 import android.widget.DatePicker; 15 import android.widget.EditText; 16 import android.widget.TimePicker; 17 import android.widget.Toast; 18 import java.util.Calendar; 19 20 public class Main3Activity extends AppCompatActivity { 21 22 23 @Override 24 protected void onCreate(Bundle savedInstanceState) { 25 super.onCreate(savedInstanceState); 26 setContentView(R.layout.activity_main3); 27 } 28 //复选对话框 29 public void bt3_onclick(View v) 30 { 31 final String [] str = {"宝马","奔驰","劳斯莱斯","宾利"}; 32 final boolean[] ch = {true,false,false,true}; 33 new AlertDialog.Builder(this) 34 .setTitle("复选对话框") 35 .setMultiChoiceItems(str, ch, new DialogInterface.OnMultiChoiceClickListener() { 36 @Override 37 public void onClick(DialogInterface dialog, int which, boolean isChecked) { 38 //改变对应数组项的选中值状态 39 ch[which]=isChecked; 40 } 41 }) 42 //添加响应按钮 43 .setPositiveButton("确认", new DialogInterface.OnClickListener() { 44 @Override 45 public void onClick(DialogInterface dialog, int which) { 46 int i = 0; 47 //获取最终的选择状态 48 for (boolean b : ch) { 49 Toast.makeText(Main3Activity.this, str[i] + "选中的输出状态=" + 50 (b ? "选中" : "未选中"), Toast.LENGTH_LONG).show(); 51 i++; 52 } 53 } 54 }) 55 .setNegativeButton("取消", null) 56 .setCancelable(false) 57 .show(); 58 } 59 }
第四种:自定义对话框
1 package com.example.administrator.android; 2 3 import android.app.AlertDialog; 4 import android.app.DatePickerDialog; 5 import android.app.Dialog; 6 import android.app.ProgressDialog; 7 import android.app.TimePickerDialog; 8 import android.content.DialogInterface; 9 import android.support.v7.app.AppCompatActivity; 10 import android.os.Bundle; 11 import android.text.Layout; 12 import android.view.LayoutInflater; 13 import android.view.View; 14 import android.widget.DatePicker; 15 import android.widget.EditText; 16 import android.widget.TimePicker; 17 import android.widget.Toast; 18 import java.util.Calendar; 19 20 public class Main3Activity extends AppCompatActivity { 21 22 23 @Override 24 protected void onCreate(Bundle savedInstanceState) { 25 super.onCreate(savedInstanceState); 26 setContentView(R.layout.activity_main3); 27 } 28 //自定义对话框 29 public void bt4_onclick(View v) 30 { 31 LayoutInflater layoutInflater = getLayoutInflater(); 32 View view = layoutInflater.inflate(R.layout.dialoglayout, null); 33 new AlertDialog.Builder(this) 34 .setTitle("自定义对话框") 35 .setPositiveButton("确定", new DialogInterface.OnClickListener() { 36 @Override 37 public void onClick(DialogInterface dialog, int which) { 38 Toast.makeText(Main3Activity.this, "执行结束", Toast.LENGTH_SHORT).show(); 39 } 40 }) 41 .setView(view) 42 .show(); 43 } 44 }
第五种:登录对话框
1 package com.example.administrator.android; 2 3 import android.app.AlertDialog; 4 import android.app.DatePickerDialog; 5 import android.app.Dialog; 6 import android.app.ProgressDialog; 7 import android.app.TimePickerDialog; 8 import android.content.DialogInterface; 9 import android.support.v7.app.AppCompatActivity; 10 import android.os.Bundle; 11 import android.text.Layout; 12 import android.view.LayoutInflater; 13 import android.view.View; 14 import android.widget.DatePicker; 15 import android.widget.EditText; 16 import android.widget.TimePicker; 17 import android.widget.Toast; 18 import java.util.Calendar; 19 20 public class Main3Activity extends AppCompatActivity { 21 22 23 @Override 24 protected void onCreate(Bundle savedInstanceState) { 25 super.onCreate(savedInstanceState); 26 setContentView(R.layout.activity_main3); 27 } 28 //登录对话框 29 public void bt5_onclick(View v) 30 { 31 //加载Layout文件 32 final View view = View.inflate(this, R.layout.dialog_login, null); 33 34 AlertDialog al = 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 AlertDialog al = (AlertDialog)dialog; 42 //获取输入信息 43 EditText et_1 = (EditText)al.findViewById(R.id.et_1); 44 45 Toast.makeText(Main3Activity.this, "用户名 = "+ 46 et_1.getText(), Toast.LENGTH_SHORT).show(); 47 //验证并提示 48 } 49 }) 50 .setNegativeButton("取消",null) 51 .show(); 52 } 53 }
第六种:日历选择对话框
1 package com.example.administrator.android; 2 3 import android.app.AlertDialog; 4 import android.app.DatePickerDialog; 5 import android.app.Dialog; 6 import android.app.ProgressDialog; 7 import android.app.TimePickerDialog; 8 import android.content.DialogInterface; 9 import android.support.v7.app.AppCompatActivity; 10 import android.os.Bundle; 11 import android.text.Layout; 12 import android.view.LayoutInflater; 13 import android.view.View; 14 import android.widget.DatePicker; 15 import android.widget.EditText; 16 import android.widget.TimePicker; 17 import android.widget.Toast; 18 import java.util.Calendar; 19 20 public class Main3Activity extends AppCompatActivity { 21 22 23 @Override 24 protected void onCreate(Bundle savedInstanceState) { 25 super.onCreate(savedInstanceState); 26 setContentView(R.layout.activity_main3); 27 } 28 //当前日期 日历 29 //单例模式 30 Calendar c = Calendar.getInstance(); 31 //日期对话框 32 public void bt6_onclick(View v) 33 { 34 DatePickerDialog dp = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() { 35 @Override 36 public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { 37 Toast.makeText(Main3Activity.this, year+"-"+(monthOfYear+1)+"-"+dayOfMonth, Toast.LENGTH_SHORT).show(); 38 } 39 }, c.get(Calendar.YEAR), c.get(Calendar.MONTH), c.get(Calendar.DAY_OF_MONTH)); 40 41 dp.setCancelable(false); 42 43 dp.show(); 44 } 45 }
第七种:时间选择对话框
1 package com.example.administrator.android; 2 3 import android.app.AlertDialog; 4 import android.app.DatePickerDialog; 5 import android.app.Dialog; 6 import android.app.ProgressDialog; 7 import android.app.TimePickerDialog; 8 import android.content.DialogInterface; 9 import android.support.v7.app.AppCompatActivity; 10 import android.os.Bundle; 11 import android.text.Layout; 12 import android.view.LayoutInflater; 13 import android.view.View; 14 import android.widget.DatePicker; 15 import android.widget.EditText; 16 import android.widget.TimePicker; 17 import android.widget.Toast; 18 import java.util.Calendar; 19 20 public class Main3Activity extends AppCompatActivity { 21 22 23 @Override 24 protected void onCreate(Bundle savedInstanceState) { 25 super.onCreate(savedInstanceState); 26 setContentView(R.layout.activity_main3); 27 } 28 //时间对话框 29 public void bt7_onclick(View v) 30 { 31 TimePickerDialog tp = new TimePickerDialog(this, new TimePickerDialog.OnTimeSetListener() { 32 @Override 33 public void onTimeSet(TimePicker view, int hourOfDay, int minute) { 34 Toast.makeText(Main3Activity.this, hourOfDay+":"+minute, Toast.LENGTH_SHORT).show(); 35 } 36 }, c.get(Calendar.HOUR_OF_DAY),c.get(Calendar.MINUTE), true); 37 38 tp.setCanceledOnTouchOutside(false); 39 40 tp.show(); 41 } 42 }
第八种:普通进度对话框
1 //普通进度对话框 2 public void bt8_onclick(View v) 3 { 4 final ProgressDialog progressDialog = new ProgressDialog(this); 5 progressDialog.setTitle("进度对话框"); 6 progressDialog.setMessage("请等待. . ."); 7 progressDialog.setCancelable(false); 8 progressDialog.show(); 9 //不要写业务代码 10 //开启子线程 实现多线程 11 //1.继承 2.实现接口 12 //1.继承 Thread,重写run方法,调用start() 13 new Thread(){ 14 @Override 15 public void run() { 16 try { 17 // 延迟 线程 18 Thread.sleep(3000); 19 } 20 catch (Exception e) 21 { 22 } 23 progressDialog.dismiss();//关闭方法 24 } 25 }.start();//start负责启动子线程 26 }
第九种:水平进度对话框
1 //水平进度对话框 2 public void bt9_onclick(View v) 3 { 4 final ProgressDialog progressDialog = new ProgressDialog(this); 5 progressDialog.setTitle("水平进度对话框"); 6 progressDialog.setMessage("正在加载 . . ."); 7 progressDialog.setCancelable(false); 8 //设置水平 9 progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); 10 progressDialog.show(); 11 final TextView tv_2 = (TextView)findViewById(R.id.tv_2); 12 //启动子线程-实现接口方式Runnable启动 13 //匿名内部类 14 new Thread(new Runnable() { 15 @Override 16 public void run() { 17 //模拟进度变化 18 for (int i = 0 ; i <= 100;i++) { 19 progressDialog.setProgress(i); 20 try { 21 // 延迟 线程 22 Thread.sleep(200); 23 } catch (Exception e) { 24 } 25 } 26 //在子线程里访问UI线程的视图 27 runOnUiThread(new Runnable() { 28 @Override 29 public void run() { 30 tv_2.setText("下载完成!"); 31 } 32 }); 33 //执行完业务代码 34 //关闭 35 progressDialog.dismiss();//关闭方法 36 } 37 }).start(); 38 } 39 }
自定义对话框如下:
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 <EditText 15 android:layout_width="match_parent" 16 android:layout_height="wrap_content" 17 android:hint="密码" 18 android:inputType="numberPassword" 19 android:id="@+id/et_2" 20 android:layout_margin="16dp"/> 21 </LinearLayout> 22 23 *登录对话框*
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 7 <ImageView 8 android:layout_width="wrap_content" 9 android:layout_height="wrap_content" 10 android:src="@drawable/f8" 11 android:layout_gravity="center"/> 12 </LinearLayout> 13 14 *自定义对话框*
标签:
原文地址:http://www.cnblogs.com/TENOKAWA/p/5492754.html