android中的对话框怎么写

作者&投稿:松振 (若有异议请与网页底部的电邮联系)
android中的对话框怎么写~

 Activities提供了一种方便管理的创建、保存、回复的对话框机制,例如onCreateDialog(int),onPrepareDialog(int,Dialog),showDialog(int),dismissDialog(int)等方法,如果使用这些方法的话,Activity将通过getOwnerActivity()方法返回该Activity管理的对话框(dialog).
  
  onCreateDialog(int):当你使用这个回调函数时,Android系统会有效的设置这个Activity为每个对话框的所有者,从而自动管理每个对话框的状态并挂靠到Activity上。这样,每个对话框继承这个Activity的特定属性。比如,当一个对话框打开时,菜单键显示为这个Activity定义的选项菜单,音量键修改Activity使用的音频流。
  
  showDialog(int):当你想要显示一个对话框时,调用showDialog(intid)方法并传递一个唯一标识这个对话框的整数。当对话框第一次被请求时,Android从你的Activity中调用onCreateDialog(intid),你应该在这里初始化这个对话框Dialog。这个回调方法被传以和showDialog(intid)相同的ID。当你创建这个对话框后,在Activity的最后返回这个对象。
  
  onPrepareDialog(int,Dialog):在对话框被显示之前,Android还调用了可选的回调函数onPrepareDialog(intid,Dialog).如果你想在每一次对话框被打开时改变它的任何属性,你可以定义这个方法。这个方法在每次打开对话框时被调用,而onCreateDialog(int)仅在对话框第一次打开时被调用。如果你不定义onPrepareDialog(),那么这个对话框将保持和上次打开时一样。这个方法也被传递以对话框的ID,和在onCreateDialog()中创建的对话框对象。
  
  dismissDialog(int):当你准备关闭对话框时,你可以通过对这个对话框调用dismiss()来消除它。如果需要,你还可以从这个Activity中调用dismissDialog(intid)方法,这实际上将为你对这个对话框调用dismiss()方法。如果你想使用onCreateDialog(intid)方法来管理你对话框的状态(就如同在前面的章节讨论的那样),然后每次你的对话框消除的时候,这个对话框对象的状态将由该Activity保留。如果你决定不再需要这个对象或者清除该状态是重要的,那么你应该调用removeDialog(intid)。这将删除任何内部对象引用而且如果这个对话框正在显示,它将被消除。

android中Dialog对话框获取文本文字,只需要使用editor的getText方法就可以获得,示例如下:
final EditText et = new EditText(this);
et.setText(mSharedPreferences.getString("ipadd", "127.0.0.1"));
//获取ip而已,不用在乎
new AlertDialog.Builder(this).setTitle("请输入IP地址")
.setIcon(android.R.drawable.ic_dialog_info).setView(et)
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
//数据获取
//Toast.makeText(TestTabActivity.this, et.getText().toString(),
// Toast.LENGTH_LONG).show();
mEditor.putString("ipadd", et.getText().toString());
//关键在这儿,获取输入框的数据,原来很简单!!
mEditor.commit();
}
}).setNegativeButton("取消", null).show();

  Activities提供了一种方便管理的创建、保存、回复的对话框机制,例如onCreateDialog(int),onPrepareDialog(int,Dialog),showDialog(int),dismissDialog(int)等方法,如果使用这些方法的话,Activity将通过getOwnerActivity()方法返回该Activity管理的对话框(dialog).
  
  onCreateDialog(int):当你使用这个回调函数时,Android系统会有效的设置这个Activity为每个对话框的所有者,从而自动管理每个对话框的状态并挂靠到Activity上。这样,每个对话框继承这个Activity的特定属性。比如,当一个对话框打开时,菜单键显示为这个Activity定义的选项菜单,音量键修改Activity使用的音频流。
  
  showDialog(int):当你想要显示一个对话框时,调用showDialog(intid)方法并传递一个唯一标识这个对话框的整数。当对话框第一次被请求时,Android从你的Activity中调用onCreateDialog(intid),你应该在这里初始化这个对话框Dialog。这个回调方法被传以和showDialog(intid)相同的ID。当你创建这个对话框后,在Activity的最后返回这个对象。
  
  onPrepareDialog(int,Dialog):在对话框被显示之前,Android还调用了可选的回调函数onPrepareDialog(intid,Dialog).如果你想在每一次对话框被打开时改变它的任何属性,你可以定义这个方法。这个方法在每次打开对话框时被调用,而onCreateDialog(int)仅在对话框第一次打开时被调用。如果你不定义onPrepareDialog(),那么这个对话框将保持和上次打开时一样。这个方法也被传递以对话框的ID,和在onCreateDialog()中创建的对话框对象。
  
  dismissDialog(int):当你准备关闭对话框时,你可以通过对这个对话框调用dismiss()来消除它。如果需要,你还可以从这个Activity中调用dismissDialog(intid)方法,这实际上将为你对这个对话框调用dismiss()方法。如果你想使用onCreateDialog(intid)方法来管理你对话框的状态(就如同在前面的章节讨论的那样),然后每次你的对话框消除的时候,这个对话框对象的状态将由该Activity保留。如果你决定不再需要这个对象或者清除该状态是重要的,那么你应该调用removeDialog(intid)。这将删除任何内部对象引用而且如果这个对话框正在显示,它将被消除。
  
  下面是几种对话框的效果

 

图一:

 

图二:

 

图三:

 

图四:

 

图五:

 

图六:

 

图七:

 

图1效果:该效果是当按返回按钮时弹出一个提示,来确保无误操作,采用常见的对话框样式。


  代码:
  创建对话框方法dialog()
  
    protected void dialog() {
  AlertDialog.Builder builder = new Builder(Main.this);
  builder.setMessage("确认退出吗?");  builder.setTitle("提示");  builder.setPositiveButton("确认", new OnClickListener() {   @Override
   public void onClick(DialogInterface dialog, int which) {
    dialog.dismiss();    Main.this.finish();
   }
  });  builder.setNegativeButton("取消", new OnClickListener() {   @Override
   public void onClick(DialogInterface dialog, int which) {
    dialog.dismiss();
   }
  });  builder.create().show();
}

在onKeyDown(int keyCode, KeyEvent event)方法中调用此方法

public boolean onKeyDown(int keyCode, KeyEvent event) {
  if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
   dialog();
  }
  return false;
}

 

  图2效果:改变了对话框的图表,添加了三个按钮

Dialog dialog = new AlertDialog.Builder(this).setIcon(
     android.R.drawable.btn_star).setTitle("喜好调查").setMessage(
     "你喜欢李连杰的电影吗?").setPositiveButton("很喜欢",
     new OnClickListener() {      @Override
      public void onClick(DialogInterface dialog, int which) {
       // TODO Auto-generated method stub
       Toast.makeText(Main.this, "我很喜欢他的电影。",
         Toast.LENGTH_LONG).show();
      }
     }).setNegativeButton("不喜欢", new OnClickListener() {    @Override
    public void onClick(DialogInterface dialog, int which) {
     // TODO Auto-generated method stub
     Toast.makeText(Main.this, "我不喜欢他的电影。", Toast.LENGTH_LONG)
       .show();
    }
   }).setNeutralButton("一般", new OnClickListener() {    @Override
    public void onClick(DialogInterface dialog, int which) {
     // TODO Auto-generated method stub
     Toast.makeText(Main.this, "谈不上喜欢不喜欢。", Toast.LENGTH_LONG)
       .show();
    }
   }).create();   dialog.show();
  
  

  图3效果:信息内容是一个简单的View类型

new AlertDialog.Builder(this).setTitle("请输入").setIcon(
     android.R.drawable.ic_dialog_info).setView(
     new EditText(this)).setPositiveButton("确定", null)
     .setNegativeButton("取消", null).show();

 

  图4效果:信息内容是一组单选框

new AlertDialog.Builder(this).setTitle("复选框").setMultiChoiceItems(
     new String[] { "Item1", "Item2" }, null, null)
     .setPositiveButton("确定", null)
     .setNegativeButton("取消", null).show();

 

  图5效果:信息内容是一组多选框

new AlertDialog.Builder(this).setTitle("单选框").setIcon(
     android.R.drawable.ic_dialog_info).setSingleChoiceItems(
     new String[] { "Item1", "Item2" }, 0,
     new DialogInterface.OnClickListener() {
      public void onClick(DialogInterface dialog, int which) {
       dialog.dismiss();
      }
     }).setNegativeButton("取消", null).show();

 

  图6效果:信息内容是一组简单列表项

new AlertDialog.Builder(this).setTitle("列表框").setItems(
     new String[] { "Item1", "Item2" }, null).setNegativeButton(
     "确定", null).show();

 

  图7效果:信息内容是一个自定义的布局
  
  1.布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content" android:layout_width="wrap_content"
android:background="#ffffffff" android:orientation="horizontal"
android:id="@+id/dialog">
<TextView android:layout_height="wrap_content"
   android:layout_width="wrap_content"
  android:id="@+id/tvname" android:text="姓名:" />
<EditText android:layout_height="wrap_content"
  android:layout_width="wrap_content" android:id="@+id/etname" android:minWidth="100dip"/></LinearLayout>

  2.调用代码
  
  LayoutInflater inflater = getLayoutInflater();
   View layout = inflater.inflate(R.layout.dialog,
     (ViewGroup) findViewById(R.id.dialog));   new AlertDialog.Builder(this).setTitle("自定义布局").setView(layout)
     .setPositiveButton("确定", null)
     .setNegativeButton("取消", null).show();




android Android4.0中是不是已经加入对UVC及UAC的驱动支持?
android Android4.0中已经加入对UVC及UAC的驱动支持。Android4.0可以接上外置的USB摄像头及MIC使用。符合UVC规格的硬件设备在不需要安装任何的驱动程序下即可在主机中正常使用。使用UVC技术的包括摄像头、数码相机、类比影像转换器、电视棒及静态影像相机等设备。UAC(USB Audio Class)USB音频类,是USB众多...

简述如何使用androidstudio对文件进行保存和获取文件中的数据
在Android Studio中,我们可以使用内置的文件I\/O API或者Android的SharedPreferences API来保存和获取文件中的数据。使用内置的文件I\/O API 1. 保存数据到文件:首先,我们需要创建一个FileOutputStream对象,它将用于写入数据到文件中。然后,我们使用OutputStreamWriter将这个FileOutputStream对象转换为字符流,...

MVC分别对应了android中的那些内容相对应?
MVC与android分别对应内容如下:1、模型层(model):对数据库的操作、对网络等的操作都应该在model里面处理,对业务计算等操作也是必须放在的该层的。2、视图层(view):一般采用xml文件进行界面的描述,使用的时候可以非常方便的引入,在android中也可以使用javascript+html等的方式作为view层,这里需要...

如何在Android开发中对properties文件进行读取
对了,这两个函数与Android一点关系都没有嘛。。所以它们一样可以在其他标准的java程序中被使用在Android中,比起用纯字符串读写并自行解析,或是用xml来保存配置,Properties显得更简单和直观,因为自行解析需要大量代码,而xml的操作又远不及Properties方便 使用方法如下:写入配置:Properties prop = new...

android 7.0对开发者会有哪些影响
Android N 的应用。如果您的应用使用任何 Intent,您仍需要尽快移除它们的依赖关系,以正确适配 Android N 设备。 Android 框架提供多个解决方案来缓解对这些隐式广播的需求。 例如,JobScheduler API 提供了一个稳健可靠的机制来安排满足指定条件(例如连入无限流量网络)时所执行的网络操作。 您甚至可以...

关于刚刚发布的 Android10,需要知道这 6 大改进
此外, Google 还推出了「Project Mainline」项目,将Android 系统涉及的隐私管理,以及通用接口(比如 OpenGL)模块单独划分出来进行管理,进一步加强安全保护和方便后期的漏洞修复。5. 人工智能技术的更广泛使用 Google在本次的Android 10 系统中,进行了更多对近几年来机器学习技术与成果的运用尝试。比如...

Android Intent传递对象为什么要序列化,序列化有那几种方式
      1.先了解一下 什么是序列化。通过对《Android 开发艺术探索》可以知道序列化是将一个对象转化成可存储可传输的状态,序列化后的对象可以在网络上传输,也可以存储到本地。       2.回到我们的主题,那为什么要序列化呢?<大致有三个原因> &#...

如何在Android开发中对properties文件进行读取
android中读取properties就简单多了,不过不建议用properties 因为apk是要打包的,也就是说,properties文件要在你的应用程序发布之前打包进去 读取方式:1. 将 properties文件复制到res\/raw目录下 2. 调用android api 获取raw下的输入流 3.Properties pr = new Properties();try { pr.load(getResources(...

Android对Linux内核有怎样的改动?
据统计,Android 内核对Goldfish的改动主要涉及44个文件,具体汇总如下。 说明 本书中在被改动的文件前面加了Chg标记,在新增的文件前面加了New标记。 1Chgarch\/arm\/Makefile添加CONFIG_ARCH_GOLDFISH 2Newarch\/arm\/configs\/goldfish_defconfig默认配置文件 3Newarch\/arm\/mach-goldfish\/Kconfig为Goldfish CPU添加Kernel配置...

Android从5.0到9.0版本的主要变更
为帮助确保应用 稳定性和兼容性 ,此平台对某些 非SDK 函数 和 字段 的使用进行了限制;无论您是直接访问这些 函数 和 字段 ,还是通过 反射 或 JNI 访问,这些限制均适用。 在 Android 9 中 ,您的应用可以继续访问这些受限的接口;该平台通过 toast 和日志条目提醒您注意这些接口。 如果...

萨迦县18464013030: android中如何将自己做的界面以一个小的对话框的形式显示出来呀?请各位大侠帮忙!谢谢! -
宰父世力尔: 在manifest的activity标签中加入这句话:android:theme="@android:style/Theme.Dialog"就好

萨迦县18464013030: android系统中实现对话框dialog的基本步骤包括哪些 -
宰父世力尔: 一句就可以显示对话框.我们在调试程序的时候用,是来检查自己程序,走到这步是否正确的检查.没有什么步骤说法.1是显示系统语法错误.2是自己写提示语.自己写在提示框的文本就ok了.

萨迦县18464013030: android 我要弹出一个对话框 如图应该怎么写 怎么获得选择的值? -
宰父世力尔: Radiogroup 的 getselected 方法 可以得到

萨迦县18464013030: android自定义对话框怎么实现 -
宰父世力尔: 实现机制1.先自定义一个弹出框的样式2.自己实现CustomDialog类,继承自Dialog,实现里面方法,在里面加载自定义样式的弹出框;3.使用时,与使用Dialog一样

萨迦县18464013030: android里怎么弹出对话框 -
宰父世力尔: 弹出一个消息框,在android中可以这样实现 new AlertDialog.Builder(self) .setTitle("标题").setMessage("简单消息框").setPositiveButton("确定", null).show();

萨迦县18464013030: android如何实现模式对话框 -
宰父世力尔: 通过以下3步,将一个Activity变为模态对话款1. 在activity的manifest中加上下面的设置android:theme="@android:style/Theme.Dialog"2. 在onCreate函数中加上下面的代码:setFinishOnTouchOutside (false);3. Override onBackPressed @...

萨迦县18464013030: android如何实现一个弹出输入对话框呢? -
宰父世力尔: AlertDialog.Builder builder = new AlertDialog.Builder(context);builder.setTitle("提示");builder.setMessage("恭喜你,注册成功!");builder.setPositiveButton("去登录", new DialogInterface.OnClickListener() { //增加一个成...

萨迦县18464013030: android 如何做一个等待数据传输的对话框 -
宰父世力尔: 你可以先设置登录按钮为不可点击状态,在相应登录按钮的点击事件前,先判断一下用户名和密码是否为空,如果不为空,则重新设置登录按钮的状态为可点击状态,并响应点击事件,响应点击事件后,先弹出一个Dialog框并显示,然后开启一个线程去验证用户名和密码是否正确,验证正确后关掉对话框,并跳转到下一个界面Activity就可以了,

萨迦县18464013030: android中怎么设置一个日期的自定义对话框 -
宰父世力尔: 在用户点击输入框或者输入框获得焦点的时候弹出来DatePickerDialog,用户点击设定按钮,将日期填写到输入框.下面直接上代码:[html] view plain copy print? android:id="@+id/Birthday"android:layout_width="wrap_content"android:...

萨迦县18464013030: android重写dialog实现自定义的消息对话框 -
宰父世力尔: dialog里面的布局可以自定义.dialog有个方法setView(View view), 其实你只要把里面的view布局成你想要的那样就可以了

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网