Android开发有排序集合的提示弹框

Android开发有排序集合的提示弹框

有排序集合的提示弹框,不难,很常见的需求。

一、思路:

其实就不断堆积布局,调整布局即可

二、效果图:

在这里插入图片描述

三、关键代码:
public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        findViewById(R.id.tv_show_dialog).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                List<String> rules = new ArrayList<>();
                rules.add("你好,我是说明1");
                rules.add("你好,今天天气不错,是在不错,是很不错,真的不错,我是说明2");
                rules.add("你好,我是说明3");
                showRecentVisitRuleDialog(MainActivity.this,"当别人访问了的你主页就算一次访问记录",rules);
            }
        });
    }

    public static void showRecentVisitRuleDialog(final Context mContext, String msg, List<String> rules){
        final AlertDialog dialog = getAlertDialog(mContext,false);
        dialog.show();
        final Window window = dialog.getWindow();
        window.setGravity(Gravity.CENTER);
        window.setContentView(R.layout.dialog_recent_visit_rule);

        TextView tv_message = window.findViewById(R.id.tv_message);
        View cl_recent_visit_rule= window.findViewById(R.id.cl_recent_visit_rule);
        View view_2 = window.findViewById(R.id.view_2);
        TextView tv_rule_2 = window.findViewById(R.id.tv_rule_2);
        View view_1 = window.findViewById(R.id.view_1);
        TextView tv_rule_1 = window.findViewById(R.id.tv_rule_1);
        View view_0 = window.findViewById(R.id.view_0);
        TextView tv_rule_0 = window.findViewById(R.id.tv_rule_0);
        tv_message.setText(msg);

        if (isNotNull(rules)){
            if (rules.size() >= 3){
                tv_rule_2.setText(rules.get(2));
                tv_rule_1.setText(rules.get(1));
                tv_rule_0.setText(rules.get(0));
            } else if (rules.size() == 2){
                tv_rule_1.setText(rules.get(1));
                tv_rule_0.setText(rules.get(0));
                view_2.setVisibility(View.GONE);
                tv_rule_2.setVisibility(View.GONE);
            } else {
                tv_rule_0.setText(rules.get(0));
                view_2.setVisibility(View.GONE);
                tv_rule_2.setVisibility(View.GONE);
                view_1.setVisibility(View.GONE);
                tv_rule_1.setVisibility(View.GONE);
            }
        } else {
            cl_recent_visit_rule.setVisibility(View.GONE);
        }

        window.findViewById(R.id.btn_ok).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                dialog.dismiss();
            }
        });


    }

    public static AlertDialog getAlertDialog(Context context, boolean canBack) {
        return new AlertDialog.Builder(context, R.style.mydialog).setCancelable(canBack).create();
    }
    public static <T> boolean isNotNull(List<T> list) {
        return null != list && !list.isEmpty();
    }
}
四、项目demo源码结构图:

在这里插入图片描述
有问题或者需要完整源码的私信我

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

893151960

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值