当前位置: 首页 > 知识库问答 >
问题:

如何制作只显示一次的底页对话框

壤驷俊逸
2023-03-14

我想创建一个底部工作表对话框。看起来像下面的图像在这里输入图像描述

public class MainActivity extends AppCompatActivity {


    //this is Button that open dialog
    private Button button;


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

        button = findViewById(R.id.nextBtn);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                BottomSheetDialog bottomSheetDialog = new BottomSheetDialog(
                        MainActivity.this, R.style.BottomSheetDialogTheme);
                View bottomSheetView = LayoutInflater.from(getApplicationContext())
                        .inflate(R.layout.layout_bottom_sheet, (LinearLayout) findViewById(R.id.bottomSheetContainer));
                bottomSheetDialog.setContentView(bottomSheetView);


                bottomSheetView.findViewById(R.id.doNotAgree).setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        System.exit(0);
                    }
                });
                bottomSheetView.findViewById(R.id.agree).setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        startActivity(new Intent(MainActivity.this, Activity2.class));
                        finish();
                    }

                });
            }

        });
    }
}

我尝试过许多方法,如SharedPreferences。但它不起作用

共有1个答案

吉俊德
2023-03-14
        SharedPreferences preference = getSharedPreferences("mPreference", MODE_PRIVATE);
    boolean isUserAgreed = preference.getBoolean("isUserAgreed", false);
    if (!isUserAgreed){
        // show bottomSheetDialog
    } else {
        startActivity(new Intent(MainActivity.this, Activity2.class));
        finish();
    }

    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            BottomSheetDialog bottomSheetDialog = new BottomSheetDialog(
                    MainActivity.this, R.style.BottomSheetDialogTheme);
            View bottomSheetView = LayoutInflater.from(getApplicationContext())
                    .inflate(R.layout.layout_bottom_sheet, (LinearLayout) findViewById(R.id.bottomSheetContainer));
            bottomSheetDialog.setContentView(bottomSheetView);


            bottomSheetView.findViewById(R.id.doNotAgree).setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    System.exit(0);
                }
            });
            bottomSheetView.findViewById(R.id.agree).setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    SharedPreferences.Editor editor = getSharedPreferences("mPreference", MODE_PRIVATE).edit();
                    editor.putBoolean("isUserAgreed", true);
                    editor.apply();
                    startActivity(new Intent(MainActivity.this, Activity2.class));
                    finish();
                }

            });
        }

    });
 类似资料:
  • 我在应用程序中使用“Android-Rate”库。当我尝试显示对话框时遇到问题。 当对话框打开时,里面有我放的句子,但我看不到下图中的按钮: 如您所见,文本显示但按钮未显示,就像按钮不可见一样,但如果您单击对话框的白色部分,它将打开App Store页面。 这是我的代码: 我还将此代码放在<code>Strings.xml</code>中: 你能帮我解决这个问题吗?

  • 我是新鲜的新反应,并试图建立一个简单的博客项目。 这个博客将显示一个帖子列表,访问者可以点击评论在帖子下面显示。 这里是我的问题,我想要一个特定的行为女巫是我想要用户能够显示一次只有一个评论框/窗口。 如果你点击了另一个评论链接,我想强迫其他的关闭。 我不知道该怎么做... 下面是一些代码来表示我的实际应用程序:CondeSandBox 很抱歉我的英语不好...

  • 项目是vue的 想让在打印的时候只显示页眉不显示页脚的网址链接 css设置了@page,但是页眉和页脚都一起不见了 请问这样应该怎么去设置呢?

  • 本文向大家介绍如何使用JavaScript显示提示对话框?,包括了如何使用JavaScript显示提示对话框?的使用技巧和注意事项,需要的朋友参考一下 当您要弹出文本框以获取用户输入时,提示对话框非常有用。因此,它使您可以与用户进行交互。用户需要填写该字段,然后单击“确定”。 使用称为的方法显示此对话框,该方法带有两个参数:(i)您要在文本框中显示的标签,以及(ii)要在文本框中显示的默认字符串。

  • 我正在尝试实现日期选择器对话框,但该对话框显示只有一个日期,并显示日期的其余部分为空白,这可能是什么原因?

  • 问题内容: 如何使用CSS使列表项连续水平显示? 问题答案: 列表项通常是块元素。通过属性将它们变成内联元素。 在给出的代码中,您需要使用上下文选择器使该属性应用于列表项,而不是列表本身(应用于整个列表将无效): 这是工作示例: