2013-01-04 194 views
0

我試圖實現清除單個按鈕單擊上的複選框的所有複選標記,代碼似乎對我來說沒問題,但它不起作用。複選框是在不同的佈局...在我目前的活動中我充氣複選框,並做setChecked(false)(這是行不通的)..有沒有其他的方式?Android:uncecking按鈕上的複選框單擊

Button clearbtn1 = (Button) findViewById(R.id.clearbtn); 
     clearbtn1.setOnClickListener(new OnClickListener() { 
      @Override 

      public void onClick(View v) { 



       LayoutInflater inflater_example = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
       View v1= inflater_example.inflate(R.layout.profile, null); 
       CheckBox checkBox = (CheckBox) v1.findViewById(R.id.checkBox1); 
       checkBox.setChecked(false); 
     } 
     }); 

任何幫助,將不勝感激。

+0

充氣佈局將不會工作。你是不是這個放大的視圖設置爲您隨時隨地佈局..所以變化不會反映。複選框在哪裏?你的父母的佈局? – user936414

+0

父佈局是不同的和複選框是在不同的佈局..你可以建議做什麼 – teekib

+0

複選框顯示在同一活動? – user936414

回答

1

您的適配器具有您希望生效的這些視圖。標準的面向對象的原則決定了你使用適配器方法去解決它。從你的適配器技術以及它如何巧妙地對付複選框狀態來判斷,我認爲這種方法是不言而喻的。只需設置確定其狀態的boolean標誌並刷新適配器即可。這裏有一個樣品適配器方法,可以從呼叫按鈕的OnClickListener

private void clearChecks() { 
    for (int i = 0; i < Constants.checkBoxState.length; i++) { 
     Constants.checkBoxState[i] = false; 
    } 
    notifyDataSetChanged(); 
} 
+0

正是..實現同樣的事情below..thanks一噸的私人布爾selectStatus(){ \t \t布爾結果=真正;對於(int i = 0; i teekib

1

只需清除常量中的所有複選框狀態,並通知或重置適配器以便更改反映。

Button clearbtn1 = (Button) findViewById(R.id.clearbtn); 
    clearbtn1.setOnClickListener(new OnClickListener() { 
     @Override 

     public void onClick(View v) { 
      for(int i=0;i < Constants.checkBoxState.length; i++)  
      Constants.checkBoxState[i] = false; 

      listAdapter.notifyDataSetChanged(); 

    } 
    }); 
+0

謝謝你洙多...您的代碼也可以完美 – teekib