Sie müssen das tun:
In Ihrem Adapter von RecycleView setzen:
private ItemListener mListener;
...
public void setmListener(ItemListener mListener) {
this.mListener = mListener;
}
...
public interface ItemListener {
void onItemSelected(Item item);
}
Item = Der Artikel
ausgewählt
sie ... In Ihrem ViewHolder von Adapter setzen, dass:
public class Holder extends RecyclerView.ViewHolder implements View.OnClickListener {
public TextView tv_id;
public TextView tv_url;
public TextView tv_login;
public Holder (View itemView) {
super(itemView);
tv_id = (TextView) itemView.findViewById(R.id.tv_id);
tv_url = (TextView) itemView.findViewById(R.id.tv_url);
tv_login = (TextView) itemView.findViewById(R.id.tv_login);
itemView.setOnClickListener(this);
}
@Override
public void onClick(View v) {
if (mListener != null) {
Integer position = Integer.valueOf(getLayoutPosition());
mListener.onUserSelected(mList.get(position));
}
}
}
OBS: Dieser ViewHolder ist eine InnerClass von Adapter
sie alle Sie tun müssen, ist:
In Ihrem Fragment
mRecycleViewAdapter.setmListener(this)
Them Ihr Fragment machen:
public class MyFragment extends Fragment implements MyRecycleViewAdapter.ItemListener
Und außer Kraft setzen:
@Override
public void onItemSelected(Item item) {
//call addItemsToShoppingCartFromPreviousOrder
}
Here ist ein Beispiel siehe SearchFragment.java und UsersListAdapter.java
Wollen Sie Ihre Zeit zu sparen, verwenden EventBus statt https://github.com/greenrobot/EventBus – kaitian521
Die Methode namens 'addItemsToShoppingCartFromPreviousOrder' die Arbeit erledigt. Ich muss wissen, wie ich diese Methode anrufe oder wo ich sie nennen soll. Zum Beispiel, auf meinem Fragment 'onCreateView' habe ich den' onClickListner' hinzugefügt, wird nichts tun.Und ich kann die Third-Party-Bibliothek nicht verwenden. – Ronan
Mögliches Duplikat von [Daten zwischen Fragmenten übergeben] (http://stackoverflow.com/questions/38452210/pass-data-between-fragments) – TapanHP