【问题标题】:How to make one button do a task that depends on which previous buttons has been clicked in Java android?如何使一个按钮执行一项任务,该任务取决于在 Java android 中单击了哪些先前的按钮?
【发布时间】:2016-09-03 21:49:02
【问题描述】:

我正在尝试制作一个带有关卡的简单数学训练应用程序,计划是让用户按下他想要的关卡按钮,然后当他按下 Go 应用程序启动时会出现 Go 按钮,它会生成随机数根据他选择的关卡难度,现在如何让Go按钮根据按下的关卡播放应用程序,这是我迄今为止尝试过的,但由于某种原因应用程序崩溃了。 ps这不是完整的代码只是代码的相关问题“

public void levelsWay(View view){

if (view.getTag().toString().equals("L1")) {
    a = rano.nextInt(21);
    b = rano.nextInt(51);
}

else if (view.getTag().toString().equals("L2")){
    a = rano.nextInt(101);
    b = rano.nextInt(151);
}
else if (view.getTag().toString().equals("L3")){
    a = rano.nextInt(151);
    b = rano.nextInt(501);
}
else if (view.getTag().toString().equals("L4")){
    a = rano.nextInt(501);
    b = rano.nextInt(1001);

}

}

public void generateQuestions() {

    levelsWay(null);

    c=rano.nextInt(4);
 switch (c) {
     case 0:op='+';
         break;
     case 1:op='-';
         break;
     case 2:op='*';
         break;
     case 3:op='/';
         break;
         default:op='?';
 }
    sumtextview.setText(Integer.toString(a) + op + Integer.toString(b));

}

public void start(View view) {
    starts.setVisibility(View.INVISIBLE);
    Gamelayout.setVisibility(View.VISIBLE);
    playAgain(findViewById(R.id.pp));


}

【问题讨论】:

  • 您可能希望使用 RadioButtons 而不是常规按钮来选择级别。
  • 嗯,但有没有办法让它与按钮一起工作?为什么标签不起作用?
  • 你在哪里设置标签?
  • 请分享你的activity的layout .xml文件
  • @Code-Apprentice 我在我的 xml 文件中设置了标签先生。

标签: java android button


【解决方案1】:

您需要在声明按钮的 xml 布局文件中设置标签,然后在代码中从视图中获取标签并相应地使用它,如下所示

为每个按钮设置标签如下

<Button
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/btn_level_1"
    android:tag="L1" // Setting tag here />

然后在 onClick 监听器中执行以下操作

btn = (Button)findViewById(R.id.firstButton);
btn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        String level = view.getTag().toString();
        Log.d(TAG, "Level Selected : " + level);
        // Apply the rest of the logic
    }
});

【讨论】:

  • 我确实在我的 xml 先生中设置了标签,但我不知道我必须创建一个我认为我不需要的点击监听器,并且标签会完成这项工作。但我会照你说的做,但是即使它有效,我将如何在将在 start 方法中调用的 generateQuestion 方法中调用 onclick 方法?
  • 很抱歉,我无法准确理解您想要达到的目标?
  • 例如,我为每个按钮制作了一个点击监听器,好吧,现在我想使用 if 条件让所有这些点击监听器在一种方法中发生,如何调用点击监听器并将它们放在一种方法中
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-07-31
  • 2013-04-24
  • 2020-09-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-03
相关资源
最近更新 更多