Ich habe eine Recycler-Ansicht, die als implementiert here erweitert wurde. Ich möchte onClickListener für die untergeordneten Elemente der Recycleransicht implementieren, sodass beim Klicken auf das untergeordnete Element eine Toastnachricht mit dem Text angezeigt wird, der in der untergeordneten Textansicht enthalten ist.So implementieren Sie onclicklistener auf erweiterbare recyclerview
public void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) {
final Item item = data.get(position);
switch (item.type) {
case HEADER:
final MyViewHolder itemController = (MyViewHolder) holder;
itemController.referalItem = item;
itemController.alphabet.setText(item.text.toString());
if (item.invisibleChildren == null) { itemController.btn_expand_toggle.setImageResource(R.mipmap.knob_add);
} else { itemController.btn_expand_toggle.setImageResource(R.mipmap.knob_remove);
}
itemController.btn_expand_toggle.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (item.invisibleChildren == null) {
item.invisibleChildren = new ArrayList<Item>();
int count = 0;
int pos = data.indexOf(itemController.referalItem);
while (data.size() > (pos + 1) && data.get(pos + 1).type == CHILD) {
item.invisibleChildren.add(data.remove(pos + 1));
count++;
}
notifyItemRangeRemoved(pos + 1, count);
itemController.btn_expand_toggle.setImageResource(R.mipmap.knob_add);
} else {
int pos = data.indexOf(itemController.referalItem);
int index = pos + 1;
for (Item i : item.invisibleChildren) {
data.add(index, i);
index++;
}
notifyItemRangeInserted(pos + 1, index - pos - 1);
itemController.btn_expand_toggle.setImageResource(R.mipmap.knob_remove);
item.invisibleChildren = null;
}
}
});
break;
case CHILD:
final TextView itemTextView = (TextView) holder.itemView;
try {
itemTextView.setText(data.get(position).text.toString());
itemTextView.setOnClickListener(new View.OnClickListener() { //setting the onclicklistener
@Override
public void onClick(View v) throws NullPointerException {
Toast.makeText(context, itemTextView.getText().toString(), Toast.LENGTH_SHORT).show(); //Gives nullpointer error
}
});
} catch (NullPointerException e){
}
break;
aber ich bekomme Nullpointer wenn ich in der recyclerview.Any Hilfe auf das Kind klicken wird geschätzt. Vielen Dank.
Können Sie zeigen Sie Ihre 'MyViewHolder' Klasse bitte? – kalabalik