代码之家  ›  专栏  ›  技术社区  ›  Bostone

Android:批量启用/禁用按钮

  •  6
  • Bostone  · 技术社区  · 14 年前

    我有一个活动,在桌面布局中放置了一堆按钮,这和拨号盘没什么不同。在某些操作中,我需要暂时禁用按钮。令我感到意外的是 TableLayout.setEnabled(false) 对嵌套按钮没有影响。我是一直在设置每个单独的按钮,还是有一个漂亮(更好)的方法来实现相同?

    3 回复  |  直到 9 年前
        1
  •  9
  •   Cristian    9 年前

    我会尝试这样做:

    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);
    }
    
        2
  •  1
  •   Janusz Daniel Rindt    14 年前

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

        3
  •  0
  •   Asker    14 年前

    由于按钮嵌套在TableLayout下,所以应该可以轻松地遍历子级并设置每个子级。我不知道有没有更简单的方法。