Android中自带的对话框及通知栏

本文详细介绍了Android中各种对话框的使用,包括AlertDialog.Builder的创建,如通知对话框、列表对话框、单选与多选对话框。此外,还讲解了ProgressDialog的使用,可以在子线程中刷新,以及ProgressBar的进度控制。最后提到了Spinner控件和自动提示文本框(AutoCompleteTextView和MultiAutoCompleteTextView)的实现。同时,文章涵盖了Notification通知的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • AlertDialog.Builder创建

    • 通知对话框
    • 列表对话框
    • 单选对话框
    • 多选对话框
  • ProgressDialog创建 可以在子线程中刷新

    • 进度对话框

      ProgressDialog pd = new ProgressDialog(this);
      pd.setIcon(android.R.drawable.ic_dialog_alert);
      pd.setTitle("请稍候");
      pd.setMessage("正在下载中...");
      // 修改进度条的样式
      pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
      pd.setMax(100);
      pd.show(); // 弹出进度对话框时, 默认把进度设置为0
      
  • ProgressBar进度条 可以在子线程中控制

    <ProgressBar
        style="@android:style/Widget.ProgressBar.Horizontal" // 改变为长条的样式
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:max="100" // 设置进度条的最大刻度
        android:progress="0" /> // 设置当前的进度值
    
  • Spinner 控件 下拉列表

    <Spinner
        android:id="@+id/spinner"
        android:entries="@array/lagu" // 指定展示的数据
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />
    
    // 定义在strings.xml文件中
    <string-array name="lagu">
        <item>java</item>
        <item>.net</item>
        <item>c#</item>
        <item>c</item>
        <item>c++</item>
        <item>java</item>
        <item>.net</item>
        <item>c#</item>
        <item>c</item>
        <item>c++</item>
    </string-array>
    
  • AutoCompleteTextView 自动提示文本框

    <AutoCompleteTextView
        android:id="@+id/actv"
        android:completionThreshold="1" // 设置从第一个字符开始提示, 默认值为: 2
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />
    
    AutoCompleteTextView actv = (AutoCompleteTextView) findViewById(R.id.actv);
    
    String[] items = {"老方", "老黎", "老冯", "张泽华", "张三", "张冲", "王1", "王昭珽", "王友军", "王友红"};
    ArrayAdapter<String> mAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, items);
    actv.setAdapter(mAdapter);
    
  • MultiAutoCompleteTextView 多个自动提示文本框

    // 设置一个分隔符号: 逗号
    mactv.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
    
  • Notification 通知

    Notification notification = new Notification(
            R.drawable.about_brand, 
            "您有一条新的消息过来了...", 
            System.currentTimeMillis());
    
    // 使用隐式方式指向小芳的聊天页面
    Intent intent = new Intent("com.ycy.xiaofang");
    
    /**
     * PendingIntent是一个延期意图(在未来的某个时间段, 开启一个页面, 并且可以指定使用的次数)
     *                    其实就是对Intent类的一个包装, 增加了一个使用次数的功能
     * 
     * intent 是指向某个页面的意图. 注意: 此意图必须使用隐式的方式.
     */
    PendingIntent contentIntent = PendingIntent.getActivity(this, 10, intent, PendingIntent.FLAG_ONE_SHOT);
    
    notification.setLatestEventInfo(this, 
            "小芳", // 通知详细内容的标题
            "今晚汉庭168旁边的肯德基旁边的...不见不散.", // 通知详细内容的详情信息
            contentIntent); // 当点击通知时, 跳转到哪一个页面的PendingIntent
    
    // 设置通知的标识
    // notification.flags = Notification.FLAG_AUTO_CANCEL; // 点击后自动关闭
    notification.flags = Notification.FLAG_FOREGROUND_SERVICE;  // 运行在前台的服务, 类似于手机卫士的通知
    
    // 设置弹出通知时需要的场景: 声音, 亮灯, 震动
    notification.defaults = Notification.DEFAULT_ALL; // 弹出通知时, 播放声音, 亮灯和震动.
    
    nm.notify(123, notification);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值