2013-01-04 88 views
0

我在我的應用程序和子視圖中使用可展開的列表視圖,我使用的是單選按鈕的自定義列表。這裏的問題是我想確保一次只能選擇一個單選按鈕。如果一個單選按鈕被選中,其他應deselected.This是我使用的代碼:我搜索了很多如何確保在android的可展開列表視圖的childview中只選擇單個單選按鈕?

@Override 
    public View getChildView(int groupPosition,int childPosition, 
      boolean isLastChild, View convertView, ViewGroup parent) 
    { 
     m_position = childPosition; 

     View l_view = convertView; 
     if (l_view == null) 
     { 
      LayoutInflater l_vi = (LayoutInflater)m_context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      l_view = l_vi.inflate(R.layout.singleradiobutton, null); 

      ViewHolder viewHolder = new ViewHolder(); 
      viewHolder.l_nameRadioButton = (RadioButton) l_view.findViewById(R.id.radioButton); 

      l_view.setTag(viewHolder); 
     } 

     EnteringValuesToArrayList l_enteringValuesInstance = m_itemsOfAdapterArrayList.get(childPosition); 
     String l_nameOfContact = l_enteringValuesInstance.GetNameOfEntry(); 

     if (l_nameOfContact != null) 
     { 
      ViewHolder holder = (ViewHolder) l_view.getTag(); 

      if (holder.l_nameRadioButton != null) 
      { 
       holder.l_nameRadioButton.setText(l_nameOfContact); 
      } 

      if(m_timerValue != 0 && l_enteringValuesInstance.GetTimerValueOfEntry() == m_timerValue) 
       holder.l_nameRadioButton.setChecked(true); 
      else 
       holder.l_nameRadioButton.setChecked(false); 

      holder.l_nameRadioButton.setOnClickListener(new OnItemClickListener(childPosition,holder.l_nameRadioButton.getText(),holder.l_nameRadioButton));   
     } 
     return l_view; 
    } 

    private class OnItemClickListener implements OnClickListener 
    {   
     private int l_positionOfItemClicked; 
     private CharSequence l_text; 
     private RadioButton l_radioButton; 
     OnItemClickListener(int position, CharSequence text,RadioButton l_nameRadioButton) 
     { 
      this.l_positionOfItemClicked = position; 
      this.l_text = text; 
      this.l_radioButton = l_nameRadioButton; 
     } 
     @Override 
     public void onClick(View arg0) 
     { 
      l_radioButton.setChecked(true); 
     } 
    } 

,但沒有得到problem.Please幫助me.Thanks的解決方案提前。

+0

使用RadioGroup http://developer.android.com/reference/android/widget/RadioGroup.html – Simon

+0

如何在可擴展列表視圖的自定義子視圖中使用廣播組? – user1726619

回答

1

您需要在RadioGroup中有radioButtons。當組合在一起時,每個RadioGroup一次只能選擇一個按鈕。否則,他們都可以選中或取消選中。 查看其Here

+0

如何在可擴展列表視圖的自定義子視圖中使用廣播組? – user1726619

+0

將RadioGroup添加到您的xml中,並附上所需的RadioButtons。然後您可以根據需要使用文檔中的功能 – codeMagic

1

使用RadioGroup中,因爲不是RadioGroup中的文檔「是用於組織一個或多個單選按鈕的意見,從而只允許一個單選按鈕內RadioGroup中檢查」

RadioGroup radioGroup = (RadioGroup) findViewById(R.id.rbtGp1); 
    radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() { 
     public void onCheckedChanged(RadioGroup group, int checkedId) { 
      RadioButton rb1 = (RadioButton) findViewById(R.id.rbt1); 
      if (rb1.isChecked()) { 
       // Do something 
      else { 
       // Do something else 
     } 
    } 
}); 
相關問題