AndroidDialogAlertDialog

枕上诗书闲处好,门前风景雨来佳。这篇文章主要讲述AndroidDialogAlertDialog相关的知识,希望能为你提供帮助。

AndroidDialogAlertDialog

文章图片

1、普通的对话框
AndroidDialogAlertDialog

文章图片


AndroidDialogAlertDialog

文章图片
AndroidDialogAlertDialog

文章图片
1 < LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 2android:layout_width="match_parent" 3android:layout_height="match_parent" 4android:gravity="center" 5android:orientation="vertical" > 6 7< ProgressBar 8android:id="@+id/progressBar1" 9style="?android:attr/progressBarStyleLarge" 10android:layout_width="wrap_content" 11android:layout_height="wrap_content" /> 12 13 < /LinearLayout>

Dialog_progress.xml
AndroidDialogAlertDialog

文章图片
AndroidDialogAlertDialog

文章图片
1 public class MyDialog extends Dialog{ 2 3//必须要给构造方法 4public MyDialog(Context context) { 5//也可以在构建Dialog对象的时候就给指定Dialog样式 6//使用主题来修改Dialog样式,在res/values/styles.xml中添加自定义主题 7super(context,R.style.DialogTheme); 8} 9 10@Override 11protected void onCreate(Bundle savedInstanceState) { 12super.onCreate(savedInstanceState); 13//这个可以不要标题。通过getWindow().requestFeature(featureId)方法 14//getWindow().requestFeature(Window.FEATURE_NO_TITLE); 15setContentView(R.layout.dialog_progress); 16} 17 18/** 19* 一个Activity或者一个Dialog刚刚出现在用户面前的时候,焦点改变调用onWindowFocusChanged 20*/ 21@Override 22public void onWindowFocusChanged(boolean hasFocus) { 23super.onWindowFocusChanged(hasFocus); 24} 25 }

MyDialog
AndroidDialogAlertDialog

文章图片
AndroidDialogAlertDialog

文章图片
1 // 普通对话框 2public void dialog1(View v) { 3MyDialog dialog = new MyDialog(this); 4dialog.setTitle("这是进度Dialog"); 5// 显示对话框 6dialog.show(); 7 8// 关闭对话框用 9// dialog.dismiss(); 10}

普通对话框 
2、警告对话框AlertDialog setMessage
 
AndroidDialogAlertDialog

文章图片

AndroidDialogAlertDialog

文章图片
AndroidDialogAlertDialog

文章图片
1 //AlertDialogsetMessage 2public void dialog2(View v) { 3AlertDialog.Builder dialog = new AlertDialog.Builder(this); 4dialog.setTitle("警告!").setIcon(R.drawable.ic_launcher) 5.setMessage("前方高能") 6// 注意这个导的包是import android.content.DialogInterface.OnClickListener; 7.setPositiveButton("OK", new OnClickListener() { 8@Override 9public void onClick(DialogInterface dialog, int which) { 10Toast.makeText(MainActivity.this, "您选择了OK", 11Toast.LENGTH_SHORT).show(); 12 13} 14}) 15.setNegativeButton("Cancel", new OnClickListener() { 16@Override 17public void onClick(DialogInterface dialog, int which) { 18Toast.makeText(MainActivity.this, "您选择了Cancel", 19Toast.LENGTH_SHORT).show(); 20} 21}) 22.setNeutralButton("Ignore", new OnClickListener() { 23@Override 24public void onClick(DialogInterface dialog, int which) { 25Toast.makeText(MainActivity.this, "您选择了Ignore", 26Toast.LENGTH_SHORT).show(); 27} 28}) 29.create().show(); 30}

警告对话框,setMessage 
 
3、菜单对话框AlertDialog setItem 
AndroidDialogAlertDialog

文章图片

AndroidDialogAlertDialog

文章图片
AndroidDialogAlertDialog

文章图片
1 //菜单选择,setItem 如果设置setMessage,那么只会显示Message 2String[] setting = {"声音","存储","显示","应用","语言和输入法","流量使用情况","WLAN"}; 3public void dialog3(View v){ 4new AlertDialog.Builder(this) 5.setTitle("设置") 6.setIcon(R.drawable.setting) 7//which代表第几项,item点击后自动关闭,不需要Button 8.setItems(setting, new OnClickListener() { 9@Override 10public void onClick(DialogInterface dialog, int which) { 11Toast.makeText(MainActivity.this, setting[which], Toast.LENGTH_SHORT).show(); 12} 13}) 14.create().show(); 15}

菜单对话框 setItem 
4、单选对话框AlertDialog setSingleChoiceItems
【AndroidDialogAlertDialog】
AndroidDialogAlertDialog

文章图片

AndroidDialogAlertDialog

文章图片
AndroidDialogAlertDialog

文章图片
1 //单选对话框,setItem 2String[] hobby = {"唱歌","跑步","武术","乒乓球","敲代码"}; 3int choice = 0; 4public void dialog4(View v){ 5new AlertDialog.Builder(this) 6.setTitle("爱好单选") 7.setIcon(R.drawable.hobby) 8//0代表默认选中第一个,选中不会自动关闭 9.setSingleChoiceItems(hobby, 0, new OnClickListener() { 10@Override 11public void onClick(DialogInterface dialog, int which) { 12choice = which; 13} 14}) 15//Button上的which永远为0,所以这里需要一个变量来保存选中的ItemID 16.setPositiveButton("ok", new OnClickListener() { 17@Override 18public void onClick(DialogInterface dialog, int which) { 19Toast.makeText(MainActivity.this, hobby[choice], Toast.LENGTH_SHORT).show(); 20} 21}) 22.setNegativeButton("cancel",null) 23.create().show(); 24}

单选对话框 setSingleChoiceItems 
5、多选对话框AlertDialog setMultiChoiceItem
AndroidDialogAlertDialog

文章图片

 
AndroidDialogAlertDialog

文章图片
AndroidDialogAlertDialog

文章图片
1 String[] hobby = {"唱歌","跑步","武术","乒乓球","敲代码"}; 2boolean[] bool = {false,false,false,false,false}; 3List< String> list = new ArrayList< String> (); 4public void dialog5(View v){ 5new AlertDialog.Builder(this) 6.setTitle("爱好可多选") 7.setIcon(R.drawable.hobby) 8//默认选中了哪些,点击也不会自动关闭 9.setMultiChoiceItems(hobby, bool, new OnMultiChoiceClickListener() { 10@Override 11public void onClick(DialogInterface dialog, int which, boolean isChecked) { 12if(isChecked){ 13list.add(hobby[which]); 14}else{ 15list.remove(hobby[which]); 16} 17} 18}) 19.setPositiveButton("ok", new OnClickListener() { 20@Override 21public void onClick(DialogInterface dialog, int which) { 22 23Toast.makeText(MainActivity.this, list.toString(), Toast.LENGTH_SHORT).show(); 24 25} 26}).create().show(); 27}

多选对话框AlertDialog setMultiChoiceItem 
6、适配器对话框AlertDialog setAdapter
 
AndroidDialogAlertDialog

文章图片

AndroidDialogAlertDialog

文章图片
AndroidDialogAlertDialog

文章图片
1 public void dialog6(View v){ 2ArrayAdapter< String> adapter = new ArrayAdapter< String> (this, android.R.layout.simple_list_item_1, hobby); 3new AlertDialog.Builder(this) 4.setTitle("适配器对话框") 5//和setItem一样,选中之后对话框就自动消失,不需要Button 6.setAdapter(adapter, new OnClickListener() { 7@Override 8public void onClick(DialogInterface dialog, int which) { 9Toast.makeText(MainActivity.this, hobby[which], Toast.LENGTH_SHORT).show(); 10 11} 12}).create().show(); 13}

适配器对话框AlertDialog setAdapter 
  7、自定义对话框AlertDialog setView
AndroidDialogAlertDialog

文章图片

AndroidDialogAlertDialog

文章图片
自定义对话框AlertDialog setView 
8、关闭对话框AlertDialog dismisson
AndroidDialogAlertDialog

文章图片

 
AndroidDialogAlertDialog

文章图片
AndroidDialogAlertDialog

文章图片
1 < LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 2android:layout_width="match_parent" 3android:layout_height="match_parent" 4android:orientation="vertical" > 5< ImageView 6android:layout_width="wrap_content" 7android:layout_height="wrap_content" 8android:src="https://www.songbingjia.com/android/@drawable/ic_launcher"/> 9 10< EditText 11android:layout_width="wrap_content" 12android:layout_height="wrap_content" 13android:hint="关闭对话框请点击关闭按钮"/> 14 15< TextView 16android:id="@+id/finish" 17android:layout_width="wrap_content" 18android:layout_height="wrap_content" 19android:text="关闭"/> 20 21 < /LinearLayout>

Dialog_dismiss.xml
AndroidDialogAlertDialog

文章图片
AndroidDialogAlertDialog

文章图片
1 public void dialog8(View v){ 2View layout = getLayoutInflater().inflate(R.layout.dialog_dismiss, null); 3TextView finish = (TextView) layout.findViewById(R.id.finish); 4final AlertDialog dialog = new AlertDialog.Builder(MainActivity.this) 5.setTitle("可关闭的对话框") 6.setView(layout) 7.create(); 8dialog.show(); 9finish.setOnClickListener(new View.OnClickListener() { 10@Override 11public void onClick(View v) { 12dialog.dismiss(); 13} 14}); 15 16 17//有时候用户可能点到了外部,dialog就直接关闭了,而程序不知道,这时候就需要设置 18dialog.setCancelable(false); 19dialog.setOnDismissListener(new OnDismissListener() { 20@Override 21public void onDismiss(DialogInterface dialog) { 22Toast.makeText(MainActivity.this, "关闭", Toast.LENGTH_SHORT).show(); 23 24} 25}); 26}

关闭对话框 AlertDialog setView 

    推荐阅读