【问题标题】:Switch button text value in Android Studio在 Android Studio 中切换按钮文本值
【发布时间】:2015-06-02 15:29:19
【问题描述】:

你好 stackoverflow 社区,

我决定开始学习如何在 Android Studio 中制作 Android 应用程序,作为第一个项目,我认为制作一个简单的计算游戏会很有趣。

首先它生成一个随机和,​​例如 5 + 5。在总和下面它有 4 个按钮,我想在这些按钮上生成正确答案和三个错误答案。玩家按下正确或错误答案的按钮,然后再次生成总和和答案。

    // Generate wrong answers and convert
    int wronganswer1 = (answ1) + 2;
    String wronganswer1string = Integer.toString(wronganswer1);
    int wronganswer2 = (answ1) - 2;
    String wronganswer2string = Integer.toString(wronganswer2);
    int wronganswer3 = (answ1) + 3;
    String wronganswer3string = Integer.toString(wronganswer3);

    //Add Text to the buttons
    Button ansb1 = (Button)findViewById(R.id.answerbutton1);
    ansb1.setText(answer);

    Button ansb2 = (Button)findViewById(R.id.answerbutton2);
    ansb2.setText(wronganswer1string);

    Button ansb3 = (Button)findViewById(R.id.answerbutton3);
    ansb3.setText(wronganswer2string);

    Button ansb4 = (Button)findViewById(R.id.answerbutton4);
    ansb4.setText(wronganswer3string);

这会用一个正确答案和三个错误答案填充按钮上的文本。问题是正确答案永远是顶部的按钮。

我的问题是每次生成新总和时如何切换按钮的值。所以正确的答案不会总是在同一个按钮上。

【问题讨论】:

  • 好吧,我想这不是一个特定于 android 的问题 :) 我想到的一个解决方案是生成一个从 0 到 3 的随机数并使用 switch 语句选择正确的位置答案是,然后将其余答案分配给左侧的按钮

标签: java button android-studio


【解决方案1】:

您应该在按钮上设置一个随机值,以便字符串会拦截计算,这样就好像(正确答案)是 # 转到按钮 #,错误答案是 #-# 转到按钮 #

【讨论】:

    【解决方案2】:

    使用数组来保存你的答案。

    String[] ans = new String[4];
    
    int wronganswer1 = (answ1) + 2;
    int wronganswer2 = (answ1) - 2;
    int wronganswer3 = (answ1) + 3;
    
    ans[0] = Integer.toString(answ1);
    ans[1] = Integer.toString(wronganswer1);
    ans[2] = Integer.toString(wronganswer2);
    ans[3] = Integer.toString(wronganswer3);
    

    将您的 Button 引用保存到 List

    List<Button> btns = new ArrayList<Button>(4);
    
    btns.add((Button)findViewById(R.id.answerbutton1));
    btns.add((Button)findViewById(R.id.answerbutton2));
    btns.add((Button)findViewById(R.id.answerbutton3));
    btns.add((Button)findViewById(R.id.answerbutton4));
    

    现在,使用Collections.shuffle() 随机化Buttons

    Collections.shuffle(btns);
    

    只需遍历 List 即可设置答案。

    for (int i = 0; i < 4; i++) {
        btns.get(i).setText(ans[i]);
    }
    

    【讨论】:

    • @TheDoner 乐于助人:)
    • 嘿,我想知道在此代码切换后是否仍然可以在特定按钮上调用 onclick()。
    • 所有四个按钮的按钮处理程序可能相同。它可以通过使用switch (view.getId())来区分实际的按钮。
    猜你喜欢
    • 2019-02-03
    • 2014-12-24
    • 1970-01-01
    • 1970-01-01
    • 2020-08-20
    • 2016-04-16
    • 2012-01-30
    • 1970-01-01
    • 2012-11-19
    相关资源
    最近更新 更多