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源码结构图:
有问题或者需要完整源码的私信我