【问题标题】:How to Generate the ID of a Random Toggle Button, Then SetChecked(True) That Specific Toggle Button如何生成随机切换按钮的 ID,然后 SetChecked(True) 特定切换按钮
【发布时间】:2015-06-24 22:53:29
【问题描述】:

我有两个 ToggleButtons,我希望能够随机选择其中一个按钮的 id,并将检查该按钮设置为 true。我试过了,但它不起作用,因为 setChecked 不适用于 Int 或 String。任何帮助将不胜感激。

int[] buttonIds = new int[] {R.id.player1Button, R.id.player2Button};
Random rand = new Random();
int num = rand.nextInt(buttonIds.length);
int buttonId = buttonIds[num];
findViewById(buttonId).toString();
String randomButton = getString(buttonId);
randomButton.setChecked(true); /// THIS LINE OF CODE WILL NOT WORK

【问题讨论】:

    标签: android random togglebutton android-identifiers


    【解决方案1】:

    改用这一行

    ((ToggleButton)findViewById(buttonId)).setChecked(true);
    

    【讨论】:

    • 有没有办法获取数组中剩余按钮的 id,以便我可以将其设置为 false。有时可以检查两个切换按钮,因为启动时一个已经为真。
    • For (int i=0;i
    • 非常感谢。按预期工作
    【解决方案2】:

    最后你有点困惑。您选择随机id 的代码很好。但是ToggleButton 是一个类。它不是String。如果通过toString() 将其转换为String,它将没有任何toggleButton 功能。相反,您希望 findViewById 获取 id,将其转换为 ToggleButton 并在该 ToggleButton 上调用 setChecked

    【讨论】:

    • 谢谢你的朋友,我已经按照你说的做了。我将最后三行更改为:findViewById(buttonId);ToggleButton randomButton = (ToggleButton) findViewById(buttonId);randomButton.setChecked(true);
    • 但是,由于其中一个 ToggleButtons 在启动时已被检查,有时两个切换按钮最终都会被检查。有没有办法获取数组中剩余按钮的 id,这样我就可以同时将它设置为 false
    • 只有 2 个 id - 您选择的随机索引是 0 或 1。这两个值中的另一个是另一个按钮的索引。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-25
    • 2023-03-20
    • 1970-01-01
    • 2014-06-15
    • 2013-06-20
    相关资源
    最近更新 更多