【问题标题】:How to use IF with Button in java Android?java - 如何在Java Android中使用IF和Button?
【发布时间】:2019-11-28 05:18:44
【问题描述】:

我想制作进入新活动但在某些情况下的按钮。如果我使用 button1 则显示有关 A 的数据,如果使用 button2 则显示有关 B 的数据。

我尝试为每个按钮设置新活动,但我必须创建新课程,对吗?所以这就是为什么我只想像我之前说的那样使用 IF

Button move_found = findViewById(R.id.btn_found);
Button move_conc = findViewById(R.id.btn_conc);

move_found.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MakeupMenu.this, MakeupActivity.class);
                startActivity(intent);
            }
        });
move_conc.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MakeupMenu.this, MakeupActivity.class);
                startActivity(intent);
            }
        });

这就是我的每个按钮的代码,如何为每个按钮放置 IF?我必须把 IF 代码放在这里(MakeupMenu.class),还是放在一个名为 MakeActivity.class 的新活动中?

【问题讨论】:

  • 你不需要if。您为每个按钮创建了不同的单击侦听器,因此单击 button1 将触发它的单击侦听器。而是在不同的点击监听器中设置不同的活动类
  • @VladyslavMatviienko 实际上我希望每个按钮移动到相同的活动,但显示不同的数据。这就是为什么我需要每个按钮的“IF”。但感谢您的帮助:)
  • 即使这样你也不需要if。您可以在意图中添加一些参数以显示单击了哪个按钮,并将其传递给下一个活动

标签: java android arrays if-statement android-intent


【解决方案1】:

我建议您使用通过意图传递数据的方法。这将允许 MakeActivity 从任一按钮接收数据并决定显示哪个视图。

为您的按钮使用以下代码

move_found.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(MakeupMenu.this, MakeupActivity.class);
            intent.putExtra("data,"button1");
            startActivity(intent)
        }
    });


move_conc.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(MakeupMenu.this, MakeupActivity.class);
            intent.putExtra("data","button2");
            startActivity(intent);
        }
    });

然后在您的 MakeupActivity 中,接收数据并选择要显示的内容。在 res/layout 文件夹中创建 2 个单独的布局。让我们称它们为 layout1.xml 和 layout2.xml 。\ layout1.xml 用于单击按钮 1 后的视图,layout2.xml 用于其他按钮的视图。现在在你的 MakeupActivity.class 中,编写以下代码

Intent intent = getIntent();
    String data = intent.getStringExtra("data");


    if (data.equals("button1")){
        setContentView(R.layout.layout1);
    }
    if (value.equals("button2")){
        setContentView(R.layout.layout2);
    }

【讨论】:

    【解决方案2】:

    if 在这里完全没有必要。您为两个按钮单击侦听器设置了相同的意图。

    Button move_found = findViewById(R.id.btn_found);
    Button move_conc = findViewById(R.id.btn_conc);
    
    move_found.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent intent = new Intent(MakeupMenu.this, MakeupActivity.class);
                    startActivity(intent);
                }
            });
    move_conc.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    //This intent also takes you to MakeupActivity
                    //Intent intent = new Intent(MakeupMenu.this, MakeupActivity.class);
    
                    //Instead, you probably want to point to a different activity
                    Intent intent = new Intent(MakeupMenu.this, MakeActivity.class);
                    startActivity(intent);
                }
            });
    

    P.S - 了解 Java 的基本语言结构,然后使用一些指导材料(任何好的 android 书籍或 site)学习 android。

    【讨论】:

    • 我希望每个按钮移动到相同的活动,但显示不同的数据。这就是为什么每个按钮我都需要if。但我已经得到了答案。谢谢你至少帮助我
    猜你喜欢
    • 1970-01-01
    • 2011-01-19
    • 1970-01-01
    • 1970-01-01
    • 2019-07-19
    • 2017-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多