android子进程出错不弹窗,调用AlertDialog并解决弹窗不显示的问题

调用AlertDialog并解决弹窗不显示的问题

珂泽 • 2020 年 10 月 04 日

Loading...

安卓中自带的弹窗还是很有意思的,不过今天遇到了无法显示的问题,最后发现是自己的疏忽没有调用`.show()`方法。

记录一下调用安卓自带弹窗 AlertDialog 的写法

## 布局

首先写一个线性布局,里面加一个按钮

```xml

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:orientation="horizontal"

>

android:id="@+id/uninstall"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_weight="1"

android:text="@string/uninstall" />//文本是:卸载

```

思路是点击这个卸载按钮,然后弹窗提示是否卸载。

## 代码

首先贴出全部代码

```java

public class MainActivity extends AppCompatActivity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

Button uns = findViewById(R.id.uninstall);

OnClick onClick = new OnClick();

uns.setOnClickListener(onClick);//给按钮uninstall创建一个点击事件

}

class OnClick implements View.OnClickListener{

public void onClick(View v){

if (v.getId()== R.id.uninstall){

AlertDialog.Builder builder =new AlertDialog.Builder(MainActivity.this);// 这里面要写清楚在哪个activity弹窗

builder.setTitle("您好,请确认!").setMessage("真的要卸载嘛???");

builder.setPositiveButton("残忍卸载", new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialogInterface, int i) {

Toast.makeText(MainActivity.this, "卸载是可能的,这辈子都不可能!", Toast.LENGTH_SHORT).show();

}

});

builder.setNegativeButton("不,点错了", new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialogInterface, int i) {

Toast.makeText(MainActivity.this, "很识时务哦~", Toast.LENGTH_SHORT).show();

}

});

AlertDialog alert = builder.create();//完成对话框对象构建

alert.show();// 展示对话框

}

}

}

}

```

## 基本使用流程

> 参考:https://www.runoob.com/w3cnote/android-tutorial-alertdialog.html

Step 1:创建AlertDialog.Builder对象;

Step 2:调用setIcon()设置图标,setTitle()或setCustomTitle()设置标题;

Step 3:设置对话框的内容:setMessage()还有其他方法来指定显示的内容;

Step 4:调用setPositive/Negative/NeutralButton()设置:确定,取消,中立按钮;

Step 5:调用create()方法创建这个对象,再调用show()方法将对话框显示出来;

关于这个`.show()`方法的使用,可以直接在设备标题后面调用:

```java

builder.setTitle("您好,请确认!").show();

builder.setMessage("真的要卸载嘛???").show();

···

```

也可以在后面直接批量调用:

~~~java

builder.setTitle("您好,请确认!").setMessage("真的要卸载嘛???");

...

AlertDialog alert = builder.create();

alert.show();

~~~

## 成果图

![cg](/usr/uploads/kaygbcom/20201004201747.png)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值