私はあなたの理解を深めていただくためにコードを簡略化しました。 私はMyAdapter
とMyActivity
の両方を完全に使用しています。別のアクティビティをリスナーに実装する方法
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
}
...
}
私は別のアクティビティを作りたいMyAnotherActivity
MyAdapter.Listener
を実装します。 私のアプリケーションを実行し、オブジェクトをクリックすると、オーバーライドされたonSelected()
は無視されます。
public class MyAnotherActivity implements MyAdapter.Listener {
...
@Override
public void onSelected(Object object) {
Log.e("MyAnotherActivity", "This text doesn't shows");
}
...
}
が '' MyAdapter'のインスタンスを使用MyAnotherActivity'い道に沿ってあなたを助けるでしょうか? 'MyActivity'と同様に、正しく設定されていると思いますか? – drhr
'MyAnotherActivity'は' MyActivity'と完全に別です。私はあなたがコードをあまりにも単純化したと思う。 –