单选列表对话框效果图
XML布局
- 主要就放了一个按钮,点击之后弹出单选列表对话框进行操作
Mainactivity.java
- 获取按钮控件
- 创建对话框对象,通过Builder构建对话框
- 定义单选列表对话框的每项items
- 通过builder.setSingleChoiceItems设置传入的items字符串,10是长度,然后对其进行监听获取到用户选择的某项
- 选择物资则是弹出提示并且跳转捐赠的一个activity
- 选择钱则会跳转支付宝APP,由于个人基础APP开发,目前还没有做二维码付款功能
- 跳转支付宝APP时还会进行判断是否当前手机内有支付宝,没有的话是到支付宝的官网ds.alipay.com,手机里面有的话才会正常打开,文章末尾会贴出相关图片
- "com.eg.android.AlipayGphone"是支付宝的安装包名,各大应用的安装包名在网上都可以查到,这里有幸查阅到了一位CSDN博主的原创文章,就发以下链接出来分享给大家
https://blog.csdn.net/zhuchenglin830/article/details/82879342
- 还用到了Uri ,Uri 是统一资源标识符,用来标识、定位任何资源的字符串
- 通过getPackageManager().getLaunchIntentForPackage跳转支付宝
- 点击对话框的取消捐赠的话则隐藏对话框,并且弹出相关提示
public class MainActivity extends AppCompatActivity {
private Button btn;
String content;
String[] items = new String[]{"10元", "30元", "50元", "100元", "500元", "1000元", "旧衣物", "口罩", "旧书本", "旧文具"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = (Button) findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setIcon(R.drawable.icon); //设置弹出的对话框标题左边的logo
builder.setTitle("单选对话框");
builder.setSingleChoiceItems(items, 10, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int i) {
content = items[i]; //这里用content获取列表的某一项,后续拿这个进行一些情况判断
}
});
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int i) {
try {
if (content == "旧衣物" || content == "口罩" || content == "旧书本" || content == "旧文具") {
Toast.makeText(getApplicationContext(), "您本次选择捐赠的是:" + content, Toast.LENGTH_SHORT).show();
Intent intent = new Intent(getApplicationContext(), Main3Activity.class);
intent.putExtra("捐赠物资种类", content);
startActivity(intent);
} else {
Intent intent = getPackageManager().getLaunchIntentForPackage("com.eg.android.AlipayGphone");
startActivity(intent);
}
} catch (Exception ignore) {
Toast.makeText(getApplicationContext(), "您本次选择捐赠的是:" + content + " 但是您没有安装支付宝!无法跳转支付!请打开浏览器下载支付宝!!!", Toast.LENGTH_LONG).show();
Intent intent = new Intent();
String address = "https://ds.alipay.com/";
Uri uri = Uri.parse(address);
intent.setAction(intent.ACTION_VIEW);
intent.setData(uri);
startActivity(intent);
}
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int i) {
Toast.makeText(getApplicationContext(), "您取消了本次捐赠!欢迎好心人下次再来!!", Toast.LENGTH_SHORT).show();
}
});
builder.show();
}
});
}
}
APP运行效果图
- 之前的点击确定跳转支付宝后的图片
- 捐赠旧衣物点击确定的图片
- 手机内没有安装支付宝则会弹出支付宝官网