2011-08-22 34 views
17

Tôi cần có thể truy cập trạng thái của số ToggleButton là cách không có cách nào để tạo phương thức cho trạng thái cụ thể của ToggleButton. Vì vậy, đây là nơi tôi đang ở cho đến nay:nhận trạng thái ToggleButton thông qua trình xử lý

ToggleButton syncSwitch = (ToggleButton)findViewById(R.id.toggleButton1); 
syncSwitch.setOnClickListener(new OnClickListener(){ 
    @Override 
    public void onClick(View view){ 
     Toast.makeText(getApplicationContext(), "Click!", Toast.LENGTH_SHORT).show(); 
    } 
}); 

Bây giờ tất cả tôi cần là một số loại phương pháp boolean có thể cho xử lý trạng thái của ToggleButton.

+0

syncSwitch.isChecked() không trợ giúp? – ruhalde

+0

xem nhận xét của tôi về câu trả lời của Nikolay – nkcmr

Trả lời

34

Bạn có ý nghĩa gì khi 'tạo phương pháp cho trạng thái cụ thể'? Bạn có thể lấy tiểu bang bằng cách sử dụng isChecked().

+0

được, điều đó thật lạ. bạn * là * đúng nhưng tôi đã lên và xuống tài liệu ToggleButton và tôi không thấy điều đó. – nkcmr

+2

Đôi khi các phương thức bị ẩn vì được kế thừa từ các lớp khác. Dù sao mà tài liệu thực sự sucks thực sự, isChecked() là theo android.widget.CompoundButton – ruhalde

+0

Tôi sẽ không đi xa như vậy để nói rằng nó sucks. Bạn chỉ cần nhấp vào liên kết 'Phương pháp kế thừa' và có một giao diện 'Có thể kiểm tra' được đặt tên rất khéo léo trong danh sách. Các chi tiết được ẩn theo mặc định, nhưng đó là một tính năng vì hệ thống phân cấp thừa kế cho các widget UI có thể khá sâu. –

8

Bạn cũng có thể kiểm tra bằng cách sử dụng togglebtn.setOnCheckedChangeListener Listener như

ToggleButton toggle = (ToggleButton) findViewById(R.id.toggle); 
toggle.setOnCheckedChangeListener(new OnCheckedChangeListener() { 

@Override 
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
       Toast.makeText(getApplicationContext(), 
         String.valueOf(buttonView.isChecked()), Toast.LENGTH_SHORT).show(); 
      } 
     }); 

Hy vọng điều này sẽ giúp này.

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