2017-02-20 27 views
0

可以以編程方式檢查checkbox並使其成爲調用任何被編碼的操作一旦選中或取消選中?Android Studio以編程方式檢查複選框並將其打開OnCheckedChange

舉例來說,如果我有這樣的

checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 
     @Override 
     public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
      if(isChecked) { 
       Toast.makeText(getContext(), "You checked the checkbox!", Toast.LENGTH_SHORT).show(); 
      } 
      else { 
       Toast.makeText(getContext(), "You unchecked the checkbox!", Toast.LENGTH_SHORT).show(); 
      } 
     } 
    }); 

一個複選框,然後會一直叫

checkBox.setChecked(true);

我複選框似乎選中,但它wouldnt使敬酒。

回答

1

你可以做任何的下列
1.創建監聽對象分開,並手動調用它,當你調用setChecked
2.解壓方法實施的onCheckedChanged和手動調用它在你的變化。

1

顧名思義,setOnCheckedChangeListener,它只調用您的回調,如果複選框的值實際更改。

所以如果它已經被選中(true),然後你打電話給checkbox.setChecked(true),這個值沒有改變,所以你的回調不會被調用。

試着做checkbox.setChecked(false),它應該工作正常。

這是我最好的猜測,沒有看到你的代碼/ XML的其餘部分。

+0

我的意思是如果它沒有選中,我打電話setChecked(真),它不會調用onCheckedChange方法。但我想這就是它如何根據下面的評論工作,雖然 –

1

沒有模擬Android小部件的點擊或觸摸事件。你可以改變widget的狀態,比如禁用,啓用,以編程方式選中或不選中,但是當狀態發生變化時待辦事項,你必須通過觸摸該組件來手動改變它們的狀態。

0
checkBox.setOnCheckedChangeListener(new OnCheckedChangeListener() { 

     @Override 

     public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 

      if (isChecked) { 

          Toast.makeText(getContext(), "You checked the checkbox!", Toast.LENGTH_SHORT).show(); 

       } 

      } else { 

           Toast.makeText(getContext(), "You unchecked the checkbox!", Toast.LENGTH_SHORT).show(); 

      } 


     } 

    }); 

Just Cheked it。它會爲我工作。

+0

感謝您通過setChecked或通過單擊複選框嗎? –

+0

通過點擊複選框 –

+0

如果它不工作,你也可以嘗試checkbox.setOnClickListener(new View.OnClickListener(){ public void onClick(View v){}); –

相關問題