【问题标题】:Android: mass enable/disable buttonsAndroid:批量启用/禁用按钮
【发布时间】:2011-03-13 10:24:26
【问题描述】:

我有一个活动,其中一堆按钮放置在 TableLayout 中,与拨号盘不同。在某些操作中,我需要暂时禁用按钮。令我不快的是,TableLayout.setEnabled(false) 对嵌套按钮没有影响。我是否坚持设置每个单独的按钮,或者是否有一种漂亮(更好)的方式来实现相同的效果?

【问题讨论】:

    标签: android button tablelayout


    【解决方案1】:

    我会尝试做这样的事情:

    TableLayout tableLayoutInstance; // let's suppouse you have already initialized it
    // blablabla
    // example to deactivate all buttons
    ArrayList<View> touchables = tableLayoutInstance.getTouchables();
    for(View touchable : touchables){
        if( touchable instanceof Button )
            ((Button)touchable).setEnabled(false);
    }
    

    【讨论】:

    • 不理想但在我的情况下可以接受(并且足够短)。谢谢!
    • ((Button)touchable).setEnabled(false);
    【解决方案2】:

    我认为您必须将此按钮的每个单独设置为停用。为了使它看起来更好一点,您可以将所有按钮放在一个列表中,并在激活和停用期间对其进行迭代。但这不会阻止您在代码中找到它们。

    【讨论】:

    • 至少我可以创建一个自定义按钮来侦听某个事件并基于该事件启用/禁用。在我走那条路之前我只是想偷懒:)
    【解决方案3】:

    由于按钮嵌套在 TableLayout 下,应该很容易遍历子元素并设置每个按钮。不知道有没有更简单的方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多