2010-07-08 38 views
6

Tôi có một hoạt động có nhiều nút được đặt bên trong TableLayout, không giống như một bàn phím số. Trong một số thao tác, tôi cần tắt tạm thời các nút. Trước sự ngạc nhiên khó chịu của tôi khi làm TableLayout.setEnabled(false) không ảnh hưởng đến các nút lồng nhau. Tôi có bị mắc kẹt với việc thiết lập từng nút riêng lẻ hoặc có cách nào tốt hơn (tốt hơn) để đạt được điều tương tự không?Android: các nút bật/tắt khối lượng

Trả lời

9

Tôi muốn cố gắng làm một cái gì đó như thế này:

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); 
} 
+0

Không lý tưởng nhưng chấp nhận được trong hoàn cảnh của tôi (và đủ ngắn). Cảm ơn! – Bostone

+0

((Nút) có thể chạm) .setEnabled (sai); –

1

Tôi nghĩ bạn phải đặt từng cá nhân của các Nút này thành vô hiệu hóa. Để làm cho nó trông đẹp hơn một chút, bạn có thể đặt tất cả các nút trong danh sách và lặp lại chúng trong khi kích hoạt và hủy kích hoạt. Nhưng điều này sẽ không ngăn cản bạn tìm thấy chúng một lần trong mã của bạn.

+0

Ít nhất tôi có thể tạo nút tùy chỉnh để nghe trên sự kiện nhất định và bật/tắt dựa trên điều đó. Tôi chỉ cố gắng để được lười biếng trước khi tôi đi con đường đó :) – Bostone

0

Kể từ khi các nút được gom lại dưới một TableLayout, nó phải là dễ dàng để lặp qua các trẻ em và thiết lập mỗi một. Tôi không biết nếu có một cách dễ dàng hơn.

Các vấn đề liên quan