여기서, 을 RecyclerView 항목에 추가하는 것과 관련하여 많은 정보를 찾을 수 있습니다. 나는 하나의 상황에 맞는 메뉴 버튼을 원하고 나는 그것을 이런 식으로 구현 한 :플로팅 상황에 맞는 메뉴 RecyclerView
itemView.setOnCreateContextMenuListener(new View.OnCreateContextMenuListener() {
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
MenuItem delete = menu.add(0, v.getId(), 0, "Delete");
delete.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
int position = getAdapterPosition();
long id = mUploads.get(position).getId();
if (position != RecyclerView.NO_POSITION) {
mListener.onDeleteClick(position, id);
}
return true;
}
});
}
});
이 다음이 인터페이스의 메소드를 호출 그러나
@Override
public void onDeleteClick(int position, long id) {
Toast.makeText(this, "position: " + position + " ID: " + id, Toast.LENGTH_SHORT).show();
}
을,이 모두가 매우 지저분한보고 궁금 그 접근 방식이됩니다 나중에 문제가 발생합니다.
컨텍스트 메뉴를 사용 하시겠습니까? 커스텀'DialogFragment'는 훨씬 더 많은 제어와 유연성을 제공합니다. 물론 더 많은 코드가 필요하지만'DialogFragment'로 쉽게 재사용 할 수 있습니다. – Barns
아니요, 컨텍스트 메뉴가 필요하지 않습니다. 저는 이것이 올바른 접근 방식 일 것이라고 생각했습니다. 하지만 이제 DialogFragment가 좋게 들리 네요. –
'DialogFragment' 예제를 게시 할 것입니다. – Barns