RecyclerView 목록이 있습니다. MainActivity에서 onItemLongClick 메서드를 설정하여 DialogFragment를 시작하려고합니다. 이 대화 상자는 사용자에게 RecyclerView 목록의 항목을 삭제할 것인지를 묻는 메시지를 표시합니다. 프래그먼트가 SQLite 데이터베이스에서 올바른 항목을 삭제할 수 있도록 RecyclerView 항목의 위치를 어댑터 파일에서 캡처하고 싶습니다.Android RecyclerView : 데이터를 어댑터의 조각에 넣으려면 어떻게해야하나요?
RecyclerView 항목 위치를 setArguments가 포함 된 번들로 전달하려고합니다. Android Studio는 "bundle.putInt"행에 다음 오류를 표시합니다. 잘못된 두 번째 인자 유형. Found : '연락처'(내 데이터 모델), 'int'가 필요합니다. 내가 여기서 무엇을 놓치고 있니?
p.s. 나는 또한 "ActActivity"라는 또 다른 Activity를 정확하게로드하는 "onItemClick"메소드를 가지고있다. onItemClick 및 onItemLongClick은 Adapter 파일의 ClickListener 인터페이스로 설정됩니다. 두 가지 클릭 방법 모두 토스트를 사용하여 테스트되었으며 정상적으로 작동합니다. 활동 파일에서
: RecyclerView의 어댑터 파일에서
...
@Override
public void onItemLongClick(int position, View view) {
// For API >=14, use getFragmentManager() below.
Bundle bundle = new Bundle();
bundle.putInt("item position", **contactListAdapter.getItem(position)**); // error here.
android.app.FragmentManager fm = getFragmentManager();
fm.setArguments(bundle);
DeleteCardViewFragment delCardViewDialog = new DeleteCardViewFragment();
delCardViewDialog.show(fm,"delcardview dialog");
}
@Override
public void onItemClick(int position, View view) {
ActActivity.start(this, contactListAdapter.getItem(position));
}
:
public class ContactListAdapter extends RecyclerView.Adapter<ContactListAdapter.ContactHolder>{
private List<Contact> contactList;
private Context context;
private RecyclerItemClickListener recyclerItemClickListener;
public ContactListAdapter(Context context) {
this.context = context;
this.contactList = new ArrayList<>();
...
**public Contact getItem(int position)** {
return contactList.get(position);
}
조각 파일 :
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
...
Button btnOK = (Button) rootView.findViewById(R.id.btnOK);
btnOK.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// removeItem() here?
dismiss();
}
});
하지만'onItemLon gClick (int position, View view)'를 첫 번째 인수로 사용하기 때문에 –
은 'contactListAdapter.getItem (position)'을 'position'으로 바꿉니다. – AJW
여기서 조각 또는 활동 목록의 데이터를 설정하고 있습니까? –