2016-07-31 25 views
0

Ich habe eine Klasse mit dem Namen ExpandableListAdapter, die BaseExpandableListAdapter erweitert. Meine getChildView Methode sieht wie folgt aus:Android - Korrekte Platzierung von Listenern mit ExpandableListAdapter

@Override 
    public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, 
     ViewGroup parent) { 
    if (convertView == null) { 
     LayoutInflater infalInflater = (LayoutInflater) this.context 
       .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     convertView = infalInflater.inflate(R.layout.list_item, null); 
    } 

    tv_questionAmountResult = (TextView) convertView.findViewById(R.id.tv_questionAmountResult); 
    tv_correctAmountResult = (TextView) convertView.findViewById(R.id.tv_correctAmountResult); 
    tv_wrongAmountResult = (TextView) convertView.findViewById(R.id.tv_wrongAmountResult); 

    bt_allQuestions = (Button) convertView.findViewById(R.id.bt_allQuestions); 
    bt_correctQuestions = (Button) convertView.findViewById(R.id.bt_correctQuestions); 
    bt_wrongQuestions = (Button) convertView.findViewById(R.id.bt_wrongQuestions); 

    return convertView; 
} 

Meine andere Klasse ActTraining ist die ExpandableListAdapter im onCreate Methode:

ExpandableListAdapter listAdapter; 
ExpandableListView expListView; 

    // get the listview 
    expListView = (ExpandableListView) findViewById(R.id.topicExpandableListView); 

    // preparing list data 
    prepareListData(); 

    listAdapter = new ExpandableListAdapter(this, listDataHeader, listDataChild); 

    // setting list adapter 
    expListView.setAdapter(listAdapter); 

Jetzt möchte ich OnClickListener für die 3-Tasten hinzufügen, aber ich Ich bin mir nicht sicher mit der richtigen Platzierung. Muss ich die Listener in meiner getChildView oder in meiner ActTraining-Klasse hinzufügen?

Antwort

0

Sie müssen OnClickListener in Ihrem ExpandableListAdapter.getChildView für alle 3 Schaltflächen einfügen, da Sie ihre Schaltflächen in jedem childItem haben.

einige nützliche Verbindung für Griff OnClickListener:

RecyclerView click listener

Set a click listener to a RecyclerView

+0

Das Problem ist, dass meine ExpandableListAdapter nicht Aktivität erstreckt. Also kann ich zB startActivity() nicht verwenden. –

+0

können Sie eine Callback-Methode erstellen und sie in eine Schnittstelle einfügen und sie in Ihrem onClickListener aufrufen und dann Callback in Ihrer Aktivität implementieren. Ich habe die Antwort bearbeitet und einen nützlichen Link hinzugefügt. – SadeghAlavizadeh