FirebaseUI에서 제공하는 recyclerview 항목에 contextmenu를 넣는 방법을 알고 싶습니다. 항목을 길게 누르면 일부 작업을 수행 할 수 있습니다. 왜냐하면 나는 holder 클래스에서 onCreateContextMenu를 사용하려고 할 때 ContextMenuInfo가 null 값을 제공하기 때문입니다. 여기 내 홀더 클래스입니다 :firebaseui에서 제공하는 recyclerview 항목에서 컨텍스트 메뉴를 사용하는 방법
public class PlayerHolder extends RecyclerView.ViewHolder implements View.OnCreateContextMenuListener {
//private static final String TAG = PlayerHolder.class.getSimpleName();
public TextView playerName;
public TextView playerAge;
public PlayerHolder(View itemView) {
super(itemView);
playerName = (TextView) itemView.findViewById(R.id.player_name);
playerAge = (TextView) itemView.findViewById(R.id.player_age);
itemView.setOnCreateContextMenuListener(this);
}
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
menu.add(0, 1, 0, "Edit");//groupId, itemId, order, title
menu.add(0, 2, 0, "Share");
menu.add(0, 3, 0, "Delete");
}
//@Override
public boolean onContextItemSelected(MenuItem item) {
AdapterView.AdapterContextMenuInfo info = (AdapterView .AdapterContextMenuInfo) item.getMenuInfo();
switch (item.getItemId()) {
case 1:
//editNote(info.id);
return true;
case 2:
//shareNote(info.id);
return true;
case 3:
//deleteNote(info.id);
return true;
default:
//return super.onContextItemSelected(item);
return false;
}
}
}
이 내가 사용하여이 문제를이 게시물에이 솔루션을 해결 한 내 firebaseui의 재활용 어댑터 클래스
public class PlayerAdapter extends FirebaseRecyclerAdapter<Player, PlayerHolder> {
private static final String TAG = PlayerAdapter.class.getSimpleName();
private Context context;
public PlayerAdapter(Class<Player> modelClass, int modelLayout, Class<PlayerHolder> viewHolderClass, DatabaseReference ref, Context context) {
super(modelClass, modelLayout, viewHolderClass, ref);
this.context = context;
}
@Override
protected void populateViewHolder(PlayerHolder viewHolder, Player model, int position) {
viewHolder.playerName.setText(model.getName());
viewHolder.playerAge.setText(String.valueOf(playerAge) + " Years");
}
}
다른 정보가 필요하거나 무엇이든 물어볼 필요가 있으면 여기는 두 번째 질문입니다. 경험이 없습니다. 미리 감사드립니다 –