2017-12-03 2 views
1

라디오 버튼을 행과 열로 나눕니다.이 코드를 사용하여 https://stackoverflow.com/a/2383978/3774526 열에 있지만 문제가 있습니다.라디오 버튼을 클릭하면 감지

ToggleButtonGroupTableLayout에있는 라디오 버튼 중 하나를 클릭하면 검색 할 수 없습니다. 의 onclick 함수 내부

ToggleButtonGroupTableLayout group; 
group = (ToggleButtonGroupTableLayout) findViewById(R.id.group); 
group.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        Log.d("check", "if clicked"); 
       } 
      }); 

아무것도 실행되지 않습니다 :

이 내가 할 것입니다. 어떤 아이디어? 이 코드에 대한 감사

+0

는'내가 감지 할 수 없습니다. 그런 다음 그룹을 클릭하여 리스너를 시작해야합니다. –

+0

@NoiseGenerator 개별 자식에 대해 수신기를 설정하면 모두 선택할 수 있으며이를 원하지 않습니다. – zeeks

+0

아니요, 모든 자식에 대해 수신기를 설정해야합니다. ** 1 : 1 **. –

답변

0

보기는 : 인스턴스의 RadioButton 경우

@Override 
public void addView(View child, int index, 
     android.view.ViewGroup.LayoutParams params) { 
    super.addView(child, index, params); 
    setChildrenOnClickListener((TableRow)child); 
} 


/* (non-Javadoc) 
* @see android.widget.TableLayout#addView(android.view.View, android.view.ViewGroup.LayoutParams) 
*/ 
@Override 
public void addView(View child, android.view.ViewGroup.LayoutParams params) { 
    super.addView(child, params); 
    setChildrenOnClickListener((TableRow)child); 
} 


private void setChildrenOnClickListener(TableRow tr) { 
    final int c = tr.getChildCount(); 
    for (int i=0; i < c; i++) { 
     final View v = tr.getChildAt(i); 
     if (v instanceof RadioButton) { 
      v.setOnClickListener(this); 
     } 
    } 
} 

그들은 리스너를 넣어. 당신은 그룹 자체가 아닌 개별 아동에의 리스너를 설정 때문에 ToggleButtonGroupTableLayout에있는 라디오 버튼 중 하나는 clicked.` 인 경우

final View v = tr.getChildAt(i); 
    if (v instanceof RadioButton) { 
     v.setOnClickListener(this); 
    } 
관련 문제