2017-12-03 2 views
1

geklickt wird ich hier diesen Code bin mit meinen Radio-Buttons in Zeilen und Spalten aufgeteilt https://stackoverflow.com/a/2383978/3774526 aber ich ein Problem habe.erkennen, wenn ein Optionsfeld

Ich kann nicht erkennen, wenn eines der Optionsfelder in den ToggleButtonGroupTableLayout geklickt wird. Diese

ist, was ich tue:

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

nichts in der onClick Funktion ausgeführt wird. Irgendwelche Ideen? Dank

+0

'Ich kann nicht erkennen, wenn eines der Optionsfelder in der ToggleButtonGroupTableLayout clicked.' ist, weil Sie den Hörer auf die Gruppe setzte sich, nicht auf seine einzelnen Kinder. Dann müssen Sie auf die Gruppe klicken, um den Listener auszulösen. –

+0

@NoiseGenerator wenn ich den Hörer auf die einzelnen Kinder eingestellt, dann alles, was sie können, und ich möchte nicht, dass – zeeks

+0

Nein ausgewählt werden, können Sie einen Listener für jedes Kind zu setzen haben. ** 1: 1 **. –

Antwort

0

Blick auf diesen Code:

@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); 
     } 
    } 
} 

setzten sie einen Hörer, wenn die Instanz RadioButton- ist.

final View v = tr.getChildAt(i); 
    if (v instanceof RadioButton) { 
     v.setOnClickListener(this); 
    } 
Verwandte Themen