Ich habe meinen Code für Sie vereinfacht, um es besser zu verstehen. Ich habe MyAdapter
und MyActivity
arbeiten beide perfekt.Wie Sie eine weitere Aktivität implementieren Listener implementieren
class MyAdapter extends RecyclerView... {
...
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
...
holder.mImageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
((Listener) context).onSelected(object);
}
});
}
...
}
class MyActivity implements MyAdapter.Listener {
...
@Override
public void onSelected(Object object) {
// do things with object here
}
...
}
Ich möchte meine andere Tätigkeit machen MyAnotherActivity
MyAdapter.Listener
implementieren. Wenn ich meine App ausführen und auf mein Objekt klicke, wird ein außer Kraft gesetztes onSelected()
einfach ignoriert.
public class MyAnotherActivity implements MyAdapter.Listener {
...
@Override
public void onSelected(Object object) {
Log.e("MyAnotherActivity", "This text doesn't shows");
}
...
}
Does 'MyAnotherActivity' eine Instanz von' MyAdapter' verwenden? Sind Sie sicher, dass die Einstellung korrekt ist, ähnlich wie bei MyActivity? – drhr
'MyAnotherActivity' ist vollständig von' MyActivity' getrennt. Ich denke du hast den Code zu sehr vereinfacht. –