Android--Dialog详细讲解

Android Dialog详解 在Android开发过程中我们经常会遇到如下的场景: 在界面上弹出一个弹框,对用户进行提醒,并让用户做出某些选择性的操作                                                               删除某个应用的系统级别的Dialog                                                           ... 阅读详情

前言

  对话框对于应用也是必不可少的一个组件,在Android中也不例外,对话框对于一些提示重要信息,或者一些需要用户额外交互的一些内容很有帮 助。本篇博客就讲解一下Android下对话框的使用,在本篇博客中,将了解到对话框的一些常规属性的设置,以及各式的对话框的使用,并都会提供小 Demo来展示所有的效果。

Dialog

  Dialog,对话框,一个对话框就是一个小窗口,并不会填满整个屏幕,通常是以模态显示,要求用户必须采取行动才能继续进行剩下的操作。

  Android提供了丰富的对话框支持,它提供了如下4中常用的对话框:

  • AlertDialog:警告对话框,使用最广泛功能最丰富的一个对话框。
  • ProgressDialog:进度条对话框,只是对进度条进行了简单的封装。
  • DatePickerDialog:日期对话框。
  • TimePickerDialog:时间对话框。

  所有的对话框,都是直接或间接继承自Dialog类,而AlterDialog直接继承自Dialog,其他的几个类均继承自AlterDialog。

 

AlertDialog

  AlertDialog继承自Dialog类,对于Android内置的AlterDialog,它可以包含一个标题、一个内容消息或者一个选择列表、最多三个按钮。而创建AlterDialog推荐使用它的一个内部类AlterDialog.Builder创 建。使用Builder对象,可以设置AlterDialog的各种属性,最后通过Builder.create()就可以得到AlterDialog对 象,如果只是还需要显示这个AlterDialog,一般可以直接使用Builder.show()方法,它会返回一个AlterDialog对象,并且 显示它。

  如果仅仅是需要提示一段信息给用户,那么就可以直接使用AlterDialog的一些属性设置提示信息,涉及到的方法有:

  • AlterDialog create():根据设置的属性,创建一个AlterDialog。
  • AlterDialog show():根据设置的属性,创建一个AlterDialog,并且显示在屏幕上。
  • AlterDialog.Builder setTitle():设置标题。
  • AlterDialog.Builder setIcon():设置标题的图标。
  • AlterDialog.Builder setMessage():设置标题的内容。
  • AlterDialog.Builder setCancelable():设置是否模态,一般设置为false,表示模态,要求用户必须采取行动才能继续进行剩下的操作。

  Tips:AlterDialog.Builder的很多设置属性的方法,返回的均是这个AlterDialog.Builder对象,所以可以使用链式方式编写代码,这样更方便。

  当一个对话框调用了show()方法后,展示到屏幕上,如果需要消除它,可以使用DialogInterface接口声明的两个方 法,cancel()和dismiss()使对话框取或者消除,这两个方法的作用是一样的,不过推荐使用dismiss()。Dialog和 AlterDialog都实现了DialogInterface接口,所以只要是对话框,均可以使用这两个方法来消除对话框。

  下面通过一个简单的Demo,先看看AlterDialog是如何提示信息的:

  示例:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
btnGeneral.setOnClickListener( new  View.OnClickListener() {
  
              @Override
              public  void  onClick(View v) {
                  // TODO Auto-generated method stub
                  AlertDialog.Builder builder = new  AlertDialog.Builder(
                          MainActivity. this );
                 builder.setTitle( "提示" );
                  builder.setMessage( "这是一个普通的对话框!" );
                  builder.setIcon(R.drawable.ic_launcher);
                  builder.setCancelable( false );
                 builder.setPositiveButton( "知道了!" , new  OnClickListener() {
                      @Override
                      public  void  onClick(DialogInterface dialog, int  which) {
                          dialog.cancel();
                      }
                 });
                 builder.create().show();
              }
          });

 

展示效果:

 

AlterDialog的按钮

  AlterDialog内置了三个按钮,可以直接使用setXxxButton()方法进行设置,对于一般的对话框,使用三个按钮基本上也够用了,下面是这三个方法的签名:

  • AlterDialog.Builder setPositiveButton(CharSquence text , DialogInterFace.OnClickListener):一个积极的按钮,一般用于“OK”或者“继续”等操作。
  • AlterDialog.Builder setNegativeButton(CharSquence text , DialogInterFace.OnClickListener):一个负面的按钮,一般用于“取消”操作。
  • AlterDialog.Builder setNeutralButton(CharSquence text , DialogInterFace.OnClickListener):一个比较中性的按钮,一般用于“忽略”、“以后提醒我”等操作。

  上面介绍的DialogInterface接口,还提供了一系列的事件响应,这三个按钮均需要传递一个 DialogInterFace.OnClickListener接口对象,实现其点击事件的触发,在这个接口中需要实现一个 onClick(DialogInterface dialog,int which),dialog为当前触发事件的对话框对象接口,可以直接强制转换为AlterDialog进行操作;which为点击按钮的标识符,是一个 整形的数据,对于这三个按钮而言,每个按钮使用不同的int类型数据进行标识:Positive(-1)、Negative(-2)、 Neutral(-3)。

  而除了专门为按钮点击实现的DialogInterFace.OnClickListener事件外,DialogInterface还提供了 一些其他的事件,供Dialog对象响应,这些事件只是对Dialog声明周期各个状态的响应,一看就明白了,就不再详细讲解了,下面是这几个事件的说 明:

  • interface DialogInterface.OnCancelListener:当对话框调用cancel()方法的时候触发。
  • interface DialogInterface.OnDismissListener:当对话框调用dismiss()方法的时候触发。
  • interface DialogInterface.OnShowListener:当对话框调用show()方法的时候触发。
  • interface DialogInterface.OnMultiChoiceListener:当对话框使用多选列表,并且选中的时候触发。

  示例:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
btnButtons.setOnClickListener( new  View.OnClickListener() {
 
              @Override
             public  void  onClick(View v) {
                  // TODO Auto-generated method stub
                  AlertDialog.Builder builder = new  AlertDialog.Builder(
                         MainActivity. this );
                  builder.setTitle( "提示" );
                  builder.setMessage( "这是一个多按钮普通的对话框!" );
                 builder.setIcon(R.drawable.ic_launcher);
                 builder.setPositiveButton( "确定" , new  OnClickListener() {
  
                      @Override
                      public  void  onClick(DialogInterface dialog, int  which) {                       
                          Toast.makeText(MainActivity. this , "确定被点击" ,
                                 Toast.LENGTH_SHORT).show();
                          dialog.dismiss();
                      }
                  });
                  builder.setNegativeButton( "否定" , new  OnClickListener() {
  
                      @Override
                     public  void  onClick(DialogInterface dialog, int  which) {
                          // TODO Auto-generated method stub
                          Toast.makeText(MainActivity. this , "否定被点击" ,
                                 Toast.LENGTH_SHORT).show();
                         dialog.dismiss();
                    }
                  });
                  builder.setNeutralButton( "忽略" , new  OnClickListener() {
 
                      @Override
                      public  void  onClick(DialogInterface dialog, int  which) {
                          // TODO Auto-generated method stub
                          Toast.makeText(MainActivity. this , "忽略被点击" ,
                                 Toast.LENGTH_SHORT).show();
                          dialog.cancel();
                      }
                  });
                  builder.show();
              }
          });

 

  展示效果:

 

AlterDialog的列表形式

  AlterDialog除了展示一些提示信息,还可以展示一种列表的形式,需要使用到 Builder.setItems(CharSequence[] items,DialogInterface.OnClickListener listener)方法进行设置,它需要传递一个CharSequenece类型的数组,以绑定列表的数据,它同样需要传递一个 DialogInterface.OnClickListener接口,以响应列表项的点击,而这个接口中onClick方法的which参数,为当前点 击触发项的items中的下标。

  示例:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
btnListView.setOnClickListener( new  View.OnClickListener() {
 
     @Override
     public  void  onClick(View v) {
         // TODO Auto-generated method stub
        AlertDialog.Builder builder = new  AlertDialog.Builder(
                MainActivity. this );
         builder.setTitle( "请选择城市" );
         //items使用全局的finalCharSequenece数组声明
         builder.setItems(items, new  OnClickListener() {
             @Override
             public  void  onClick(DialogInterface dialog, int  which) {
                 // TODO Auto-generated method stub
                 String select_item = items[which].toString();
                 Toast.makeText(MainActivity. this ,
                         "选择了---》"  + select_item, Toast.LENGTH_SHORT)
                         .show();
             }
         });
         builder.show();
     }
});
  效果展示: 

 

 AlterDialog的单选列表

  AlterDialog还可以使用一种单选的列表样式,使用 Builder.setSingleChoiceItems(CharSequenece[] items,int checkedItem,DialogInterface.OnClickListener listener),这个方法具有多项重载,主要是为了应对不同的数据源,items为列表项数组,checkedItem为初始选项,listener 为点击响应事件。有时候并不一定需要选中之后就关闭对话框,可以设置两个按钮,用于确定选择。

  示例:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
btnListViewSingle.setOnClickListener( new  View.OnClickListener() {
             @Override
             public  void  onClick(View v) {
                 // TODO Auto-generated method stub
                 AlertDialog.Builder builder = new  AlertDialog.Builder(
                         MainActivity. this );
                 builder.setTitle( "请选择一下城市" );
                 builder.setSingleChoiceItems(items, 1 , new  OnClickListener() {
 
                     @Override
                     public  void  onClick(DialogInterface dialog, int  which) {
                         // TODO Auto-generated method stub
                        String select_item = items[which].toString();
                         Toast.makeText(MainActivity. this ,
                                 "选择了--->>"  + select_item, Toast.LENGTH_SHORT)
                                 .show();
                     }
                 });
                 builder.setPositiveButton( "确定" , new  OnClickListener() {
                     @Override
                     public  void  onClick(DialogInterface dialog, int  which) {
                         dialog.dismiss();
                     }
                });
                 builder.show();
             }
         });

 

  效果展示:

 

AlterDialog多选列表

  AlterDialog除了单选列表,还有多选的列表。可以使用 Builder.setMultiChoiceItems(CharSequence[] items,boolean[] checkedItems,DialogInterface.OnMultiChoiceClickListener listener),这个方法也同样具有多样重载,对于这个方法,items以一个数组为数据源;checkedItems是默认的选项,因为是多选列 表,所以如果设置需要全部设置,如果没有默认选中,则传Null;listener为多选项点击触发事件。

  示例: 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
btnListViewMulti.setOnClickListener( new  View.OnClickListener() {
  
             @Override
              public  void  onClick(View v) {
                 // TODO Auto-generated method stub
                AlertDialog.Builder builder = new  AlertDialog.Builder(
                         MainActivity. this );
                builder.setTitle( "请选择城市" );
                  builder.setMultiChoiceItems(items, new  boolean [] { true , false ,
                          true  }, new  OnMultiChoiceClickListener() {
                     @Override
                     public  void  onClick(DialogInterface dialog, int  which,
                             boolean  isChecked) {
                         // TODO Auto-generated method stub
                         String select_item = items[which].toString();
                          Toast.makeText(MainActivity. this ,
                                  "选择了--->>"  + select_item, Toast.LENGTH_SHORT)
                                  .show();
                      }
                  });
                  builder.setPositiveButton( "确定" , new  OnClickListener() {
                      @Override
                     public  void  onClick(DialogInterface dialog, int  which) {
                         dialog.dismiss();
                     }
                  });
                 builder.show();
             }
          });

 

  效果展示:

 

 

AlertDialog自定义样式

  有些时候,Android自带的一些样式设置已经无法满足需求了,那么可以使用自定义样式,自定义个XML布局文件,用这个文件的内容作为 AlertDialog的样式展示在屏幕上,这样就可以灵活定制对话框了。对于定制的XML文件,可以使用 LayoutInflater.from(Context).inflate(int,ViewGroup)的方式对其进行动态加载,然后使用 Builder.setView(View)把加载的视图与Builder对象进行关联,最后正常show()即可。

  布局代码:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<LinearLayout xmlns:android= "http://schemas.android.com/apk/res/android"
     xmlns:tools= "http://schemas.android.com/tools"
      android:layout_width= "match_parent"
      android:layout_height= "match_parent"
      android:orientation= "vertical"
     android:paddingBottom= "@dimen/activity_vertical_margin"
      android:paddingLeft= "@dimen/activity_horizontal_margin"
      android:paddingRight= "@dimen/activity_horizontal_margin"
      android:paddingTop= "@dimen/activity_vertical_margin"
      tools:context= ".MainActivity"  >
 
     <Button
          android:id= "@+id/btnGeneral"
         android:layout_width= "wrap_content"
          android:layout_height= "wrap_content"
          android:text= "普通对话框"  />
  
      <Button
          android:id= "@+id/btnButtons"
         android:layout_width= "wrap_content"
          android:layout_height= "wrap_content"
          android:text= "多按钮的普通对话框"  />
  
     <Button
          android:id= "@+id/btnListView"
          android:layout_width= "wrap_content"
          android:layout_height= "wrap_content"
          android:text= "列表选择对话框"  />
  
      <Button
         android:id= "@+id/btnListViewSingle"
          android:layout_width= "wrap_content"
          android:layout_height= "wrap_content"
          android:text= "单选列表选择对话框"  />
  
      <Button
          android:id= "@+id/btnListViewMulti"
          android:layout_width= "wrap_content"
          android:layout_height= "wrap_content"
          android:text= "多选列表选择对话框"  />
 
      <Button
          android:id= "@+id/btnProgressDialog"
          android:layout_width= "wrap_content"
          android:layout_height= "wrap_content"
          android:text= "滚动等待对话框"  />
  
      <Button
          android:id= "@+id/btnProgressDialogH"
          android:layout_width= "wrap_content"
          android:layout_height= "wrap_content"
          android:text= "进度条对话框"  />
      <Button
         android:id= "@+id/btnCustomDialog"
          android:layout_width= "wrap_content"
          android:layout_height= "wrap_content"
          android:text= "自定义对话框"  />
  </LinearLayout>

 

  实现代码:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
btnCustomDialog.setOnClickListener( new  View.OnClickListener() {
              
              @Override
             public  void  onClick(View v) {
                 AlertDialog.Builder builder= new  AlertDialog.Builder(MainActivity. this );
                  View view=LayoutInflater.from(MainActivity. this ).inflate(R.layout.dialog_signin, null );
                  Button btn=(Button)view.findViewById(R.id.btnCustom);
                  btn.setOnClickListener( new  View.OnClickListener() {
                      
                      @Override
                      public  void  onClick(View v) {
                          // TODO Auto-generated method stub
                          alertDialog.dismiss();
                         Toast.makeText(MainActivity. this , "表单填写完成" ,
                                  Toast.LENGTH_SHORT).show();
                      }
                  });
                  builder.setView(view);
                  alertDialog=builder.show();               
              }
          });

 

  效果展示:

 

ProgressDialog

  有些时候,只是需要提示用户等待,比如在执行耗时操作等的时候,可以使用进度对话框来显示一个进度信息,提示用户等待,这个时候可以使用 ProgressDialog。ProgressDialog的使用方式大部分可以参见ProgressBar,其实就是一个封装了 ProgressBar的对话框。

  ProgressDialog有 两种显示方式,一种是以一个滚动的环状图标,可以显示一个标题和一段文本内容的等待对话框;另外一种是带刻度的进度条,和常规的进度条用法一致。两种样式 通过ProgressDialog.setProgressStyle(int style)设置,可以通过ProgressDialog的两个常量进行设置:STYLE_HORIZONTAL:刻度滚 动;STYLE_SPINNER:图标滚动,默认选项。

  对于图标滚动,可以使用两种方式实现,一种是常规的调用构造函数,再设置对应的属性;另外一种是直接使用ProgressDialog的静态方法show(),直接返回一个ProgressDialog对象,并且调用show()方法。

  示例:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
btnProgressDialog.setOnClickListener( new  View.OnClickListener() {
  
              @Override
              public  void  onClick(View v) {
                  // 第一种方法,使用ProgressDialog构造函数
                  progressDialog = new  ProgressDialog(MainActivity. this );
                  progressDialog.setIcon(R.drawable.ic_launcher);
                  progressDialog.setTitle( "等待" );
                  progressDialog.setMessage( "正在加载...." );
                 progressDialog.show();
                  //第二种方法,使用静态的show方法
                  //progressDialog=ProgressDialog.show(MainActivity.this, "等待", "正在加载....", false, false);
                  new  Thread( new  Runnable() {
  
                      @Override
                      public  void  run() {
                         try  {
                              Thread.sleep( 5000 );           
                          } catch  (Exception e) {
                              e.printStackTrace();
                          }
                         finally {
                              progressDialog.dismiss();
                          }                       
                      }
                  }).start();
              }
          });

 

  效果展示:

  对于有刻度的ProgressDialog,除了从AlertDialog中继承来的属性,有一些必要的属性需要设置,以下方法都有对于的getter方法:

  • setMax(int max):最大刻度。
  • setProgress(int value):第一进度。
  • setSecondaryProgress(int value):第二进度。

  示例:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
btnProgressDialog.setOnClickListener( new  View.OnClickListener() {
  
              @Override
              public  void  onClick(View v) {
                  // 第一种方法,使用ProgressDialog构造函数
                  progressDialog = new  ProgressDialog(MainActivity. this );
                  progressDialog.setIcon(R.drawable.ic_launcher);
                  progressDialog.setTitle( "等待" );
                  progressDialog.setMessage( "正在加载...." );
                  progressDialog.show();
                  //第二种方法,使用静态的show方法
                  //progressDialog=ProgressDialog.show(MainActivity.this, "等待", "正在加载....", false, false);
                  new  Thread( new  Runnable() {
  
                      @Override
                      public  void  run() {
                         try  {
                              Thread.sleep( 5000 );           
                          } catch  (Exception e) {
                              e.printStackTrace();
                          }
                          finally {
                              progressDialog.dismiss();
                          }                       
                      }
                  }).start();
              }
          });

 

  效果展示:

   源码下载

 总结

  以上就介绍了常用的对话框的内容,DatePickerDialog和TimePickerDialog在另外一篇博客中有介绍到,可以看看:Android--UI之DatePicker、TimePicker... 。 从最新的官方文档上了解到,推荐使用FragmentDialog来操作Dialog,这样便于管理,有关Fragment的内容,还没有介绍,以后介绍 了Fragment之后再说说怎么使用FragmentDialog来创建对话框。在源码里有一个FragmentDialog的简单例子,有兴趣的可以 下载下来看看。

Android Dialog总结 #.概述 Android系统提供的所有对话框类都继承自Dialog类,一般用到的是AlertDialog。 系统本身提供了AlertDialog的一些样式、也提供了AlertDialog的一些子类Dialog用于某些具体功能,除此之外用户还可自定义AlertDialog的样式。 #.分类与常见用法 这边剪藏写得特别好,条理清晰明确、而且要点基本都包含在内:Android对话框(Dialog)完全使用手册 - 简书 1.共有5种样式的AlertDialog,示例代码和说明... 阅读详情

相关推荐

Android和Kotlin中的AlertDialog和CustomDialog。

In this blog, we are going to learn how to build AlertDialog and Custom dialog in android with kotlin language. you should have basic knowledge of kotlin, Activity, and Fragment. 在此博客中,我们将学习如何使用Kotlin...

weixin_26739079的博客 1729

Android的各种Dialog,你都知道吗?

简单来说就是一个对话框和按钮为特定事件指定了功能:即弹出一个窗口,提示用户自己去选择,去提示,去分类的一些内容。

程序羊的博客 1万+

安卓下Builder模式解析+自定义Dialog实战演练

**本文将从一下几个方面展开: 1Bulider模式的原理和使用 2系统Dailog的调用 3自定义Dailog 4自定义Dailog的一些小坑**本文Github代码链接 https://github.com/AndroidMsky/AirDialog自定义Dailog效果: 1Bulider模式的原理和使用当你看到这样的一串代码是不是觉得很炫酷? airDialog = new A

AndroidMsky的博客 6710

Android常用对话框大全——Dialog

唉!最近一直忙碌着写项目以至于都没有空出点时间来总结近期的学习,记录学习到的东西…现在正好有时间了就该好好记录一下学习的过程了。今天就来谈谈开发中经常用的到的一个控件——Dialog,对话框一般我们就用来提示一些信息给用户,让用户自主选择,或者在一些操作不可逆的情况下我们提示用户是否继续操作,下面就让我们一起来学习吧。老司机发车啦…一:最简单的对话框 AlertDialog dialog = new

上辈子作恶多端,这辈子写前端。 7万+

8种对话框(Dialog)使用方法汇总

1 普通Dialog(图1与图2) 2个按钮 public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ...

youjia29的博客 3452

详解各类以太网标准10BASE-T/100BASE-T4/100BASE-FX/1000BASE-X等

以太网是现实世界中最普遍的一种计算机网络。以太网有两类:第一类是经典以太网,第二类是交换式以太网,使用了一种称为交换机的设备连接不同的计算机。经典以太网是以太网的原始形式,运行速度从3-10 Mbps不等;而交换式以太网正是广泛应用的以太网,可运行在100Mbps、1000Mbps和10000Mbps高速率,分别以快速以太网、千兆以太网和万兆以太网的形式呈现

不积跬步,无以至千里! 5万+

【Android初学者】Dialog 组件,对话框详细讲解

所谓的Dialog组件,包括: 1、消息提示框 2、列表框 3、单选按钮,复选按钮框,   4、日期对话框,时间对话框, 5、简单进度条,下载进度条   6、自定义对话框 等等 总之dialog 是一个很重要的系统构成组件, 当前页面:一个方法,2个xml页面,一张安卓机器人图片(自行百度,eclipse的话自带)

凉城古梦猫扑街的博客 1670

Cadence17.2 > Allegro > 检查PCB Layout信号线组等长

Cadence17.2 > Allegro > 检查PCB Layout等长和配线

DL_62532的专栏 1万+

生存战争2.4幸运四叶草开局:从种子选择到稳定生存的完整流程

在沙盒生存游戏中,开局随机性往往是新手弃坑的首要原因。生存战争2.4的“幸运四叶草”并非简单的玄学种子,而是玩家对开局确定性的朴素追求。理解种子机制、资源分布与地形生成原理,是建立稳定生存流程的第一步。通过优先解决木材、食物、庇护所与工具的“最小闭环”,再逐步构建资源分级表与燃料管线,玩家可以将偶然的“好运”转化为可复用的方法论。更关键的是,学会用环境、输入、参数、边界四步排查法应对开局不顺,并借助农业与养殖实现从消耗式生存到循环式生存的跨越。本文以生存战争2.4为场景,提供一套从种子选择、开局流程到风险控

weixin_34054866的博客 434

JY02无刷电机驱动芯片的硬件设计与调试实战

本文详细介绍了JY02无刷电机驱动芯片的硬件设计与调试实战。重点解析了其外置MOSFET的设计优势,提供了从电源滤波、功率MOSFET选型到电流采样保护的核心电路设计指南。文章还分享了安全上电、动态测试及常见问题排查的完整调试流程,并探讨了开关优化、闭环测速等性能提升技巧,帮助开发者构建稳定高效的无刷电机驱动系统。

weixin_29193359的博客 364

高通Sensor Tuning实战:手把手教你用Chromatix生成并打包bin文件(附避坑指南)

本文详细介绍了高通Sensor Tuning的全流程实战,从Chromatix配置到Bin文件加载验证。通过手把手教程,帮助开发者掌握Chromatix工具链的使用,避免常见配置错误,提升调试效率。特别针对kalama等新一代平台,提供经过验证的解决方案和避坑指南。

ios99的博客 483

android 获取dialog的view,Android 原生Dialog实现

1. 简介Dialog 是一个可以展示信息以及和用户交互的小窗体.1.1 Dialog 的组成部分Title 标题部分 : 这部分是可选的,只有当内容区域被使用了才可以使用这里.(并不是强制的)Content 内容区域 : 显示信息的部分,可以使用自定义布局.Action Buttons 交互按钮 : 最多三个按钮.(Positive,Negative, Neutral)1.2 管理Dialog使...

weixin_42349769的博客 2029

OpenNARS开源通用人工智能系统:非公理推理引擎实践指南

人工智能系统从基于规则推理到深度学习模型,始终围绕如何让机器具备智能决策能力。传统逻辑系统依赖公理和完备知识,而现实世界智能体需要在资源受限、信息不完备环境下进行推理。非公理推理系统(NARS)通过动态真值计算和信念修正机制,实现了在不确定性环境下的自主学习和决策。这种推理引擎的技术价值在于模拟人类思维的核心机制——归纳、演绎和学习,为通用人工智能(AGI)提供了不同于数据驱动的新路径。在应用场景上,NARS适用于游戏NPC决策、复杂系统故障诊断和自适应机器人控制等领域。OpenNARS作为NARS理论的开

weixin_31961675的博客 408

安卓Android Dialog的使用

需求:在Dialog不关闭的情况下,切换不同的布局,也就是一级页面、二级页面。2、自定义MusicRecognitionDialog类,继承自Dialog。3、在MainActiviy中显示Dialog。

m0_54198552的博客 320

遗传算法(GA)全面解析:从生物基础到工程实践

本文全面解析了遗传算法(GA),从其生物基础到工程实践应用。遗传算法模拟自然进化过程,通过选择、交叉和变异等操作在解空间中高效搜索最优解。文章详细介绍了算法的生物学基础(达尔文进化论、孟德尔遗传定律)、基本概念(种群、个体、基因等)和核心思想。重点阐述了遗传算法的数学模型,包括编码机制、适应度函数设计、遗传算子(选择、交叉、变异)以及关键控制参数。最后提供了一个完整的Python实现示例,展示了遗传算法求解函数最大值问题的具体应用。该算法具有群体搜索、概率导向、无需梯度等特点,适用于各类复杂优化问题。

qq_42212808的博客 1177

Python 爬虫实战:爬虫代码打包为可执行文件

本文详细介绍了使用PyInstaller工具将Python爬虫打包为可执行文件的全过程。以豆瓣电影Top250爬虫为例,首先对比了主流打包工具,推荐选择跨平台的PyInstaller。通过编写完整的爬虫代码(包含异常处理和数据保存功能),演示了从环境准备、代码测试到打包配置的具体步骤。重点讲解了单文件打包、自定义图标等高级功能,并针对常见的"找不到模块"、文件体积过大等问题提供了解决方案。文章还说明了跨平台打包的注意事项,帮助开发者实现爬虫程序的无环境依赖部署,大幅提升程序的易用性和部署

2503_91057718的博客 2216

android自定义控件之Dialog详解

android原生的Dialog有时候并不一定能满足我们的业务需求,我们需要自定义控件来解决问题。下面我就介绍自动以Dialog的详细步骤。        先上图:我自定义的效果,大家可以根据我的步骤定义出任何效果。           一、创建自定义dialog类,继承自Dialog。           package com.meijianfang.customView; impo

cdy的博客 公众号:Android开发吹牛皮 2787

Altium Designer(AD24/25)PCB编辑的几种方法介绍

本文介绍了Altium Designer(AD24/25)软件中PCB编辑的四种操作方法:1)通过菜单栏"Place→Component"激活;2)点击工具栏元器件图标;3)右键快捷菜单选择;4)快捷键P+C组合操作。建议初学者先通过菜单栏和快捷菜单熟悉操作,熟练后转为工具栏和快捷键以提高效率。文章配有操作示意图,帮助用户快速掌握PCB元器件放置技巧。

fydar的博客 946

Android开发之Dialog

在Android系统中,有各式各样的菜单和对话框,这些是如何来使用的呢?下面,我们将一一讲解 首先,讲述下用的比较多的时间日期选择器,如图1 图 1 在Android系统中,显示对话框统一用一个方法 showDialog(int id); id标识了我们要显示哪种类型的对话框,为此,我们定义一个显示日期对话框的ID private static final int DIALOG_DATEPIC

路漫漫其修远兮,吾将上下而求索 654

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Android 创建Dialog

<br />创建Dialog<br />1.分类<br />(1)AlertDialog.它能够管理0个`1个`2个`3个按钮和一个包含radio或者checkbox的可选项列表.<br />(2)ProgressDialog.一个用于显示进度圈或者进度条的dialog,继承自AlertDialog,所以它也支持按钮.<br />(3)DatePickerDialog.用于让用户选择日期的dialog.<br />(4)TimePickerDialog.用于让用户选择时间的dialog.<br />如果你需

yan_daoqiu的专栏 1076

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

上一篇: Java中的访问控制public,private,protected,package
下一篇: Android之Handler用法总结
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值