widget(7、dialog)

dialog是android的对话框控件,包括:

  1. 警告对话框:AlertDialog
  2. 进度对话框:ProgressDialog
  3. 日期选择对话框:DatePickerDialog
  4. 时间选择对话框:TimePickerDialog
  5. 自定义对话框:从Dialog继承

通过AlertDialog,我们可以实现普通式、列表式及自定义等。下面给出两个典型例子:

  • 普通式:
复制代码
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setIcon(R.drawable.ic_launcher); //设置图标
builder.setTitle("错误提示");  //设置标题栏
builder.setMessage("数据库读取错误"); //对话框内容
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {  //确认按键的事件触发        
    @Override
    public void onClick(DialogInterface dialog, int which) {
        Toast t = Toast.makeText(getApplicationContext(), "确定", Toast.LENGTH_LONG);
        t.show();
    }
});
                
builder.setNegativeButton("取消", new DialogInterface.OnClickListener(){  //取消按键的事件触发

    @Override
    public void onClick(DialogInterface dialog, int which) {
        Toast t = Toast.makeText(getApplicationContext(), "取消", Toast.LENGTH_LONG);
         t.show();
        }            
    });
                
    builder.create().show();            
复制代码
  • 自定义输入
    • 定义一个layout
复制代码
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" >

    <EditText
        android:id="@+id/editText1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="21dp"
        android:ems="10" />

    <EditText
        android:id="@+id/editText2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/editText1"
        android:layout_below="@+id/editText1"
        android:layout_marginTop="15dp"
        android:ems="10"
        android:inputType="textPersonName" />

</RelativeLayout>
复制代码
    • 在构造时动态生成视图,如下:
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
LayoutInflater inflater = (LayoutInflater)getSystemService(LAYOUT_INFLATER_SERVICE);  
final View view = inflater.inflate(R.layout.dialog_input, null);   
builder.setIcon(R.drawable.ic_launcher);  
builder.setTitle("输入框");  
builder.setView(view);  
posted @   Fredric_2013  阅读(205)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示