无法检索数据并将其从适配器显示为片段



我想通过适配器从回收器视图中检索数据并将其显示到片段中,但是当我想在片段中使用数据时,数据仅存储在适配器内的捆绑包中,数据始终不会出现。

我的适配器

@Override
public void onClick(View v) {
Bundle bundle = new Bundle();
bundle.putString(BerandaFragment.KEY_NAME, 
name.getText().toString());
bundle.putString(BerandaFragment.KEY_EMAIL, 
email.getText().toString());
BerandaFragment berandaFragment = new BerandaFragment();
berandaFragment.setArguments(bundle);

}
My Fragment
cannot retrieve and display data on etDari
I'm getting error in line :
etDari = (EditText) view.findViewById(R.id.et_dari);
Bundle bundle = getArguments();
if (getArguments() != null) {
etDari.setText(bundle.getString(KEY_EMAIL));
etDari.setText(bundle.getString(KEY_EMAIL));
}
//        else {
//            etDari.setText(KEY_NAME);
//            etDari.setText(KEY_EMAIL);
//        }
From Your Adapter Pass Data to Fragment in a mentioned way :
-------------------------------------------------------------------------------
replaceFragment(FragmentPurchaseWastageDetails.newInstance(requestList.get(position).getDate()));
Replace Fragment Code
-----------------------------
public void replaceFragment(Fragment fragment) {
String backStateName = fragment.getClass().getName();
FragmentManager manager = getSupportFragmentManager();
boolean fragmentPopped = false;
try {
fragmentPopped = manager.popBackStackImmediate(backStateName, 0);
} catch (Exception e) {
e.printStackTrace();
}
/*
if fragment not in back stack, create it.
*/
if (!fragmentPopped && manager.findFragmentByTag(backStateName) == null) {
FragmentTransaction ft = manager.beginTransaction();
ft.replace(R.id.mainContainer, fragment, backStateName);
ft.addToBackStack(backStateName);
ft.commitAllowingStateLoss();
}
}
--------------------------------------------------
To get data In Fragment (Make newInstance method in your fragment)
public static FragmentPurchaseWastageDetails newInstance(String date) {
Bundle args = new Bundle();
args.putString("date", date);
FragmentPurchaseWastageDetails fragment = new FragmentPurchaseWastageDetails();
fragment.setArguments(args);
return fragment;
}
--------------------------------------------------------------
In method of onViewCreated put the mentioned code to get data
------------------------------------------------------------
private void getDatafromBundle() {
if (getArguments() != null) {
date = getArguments().getString("date");
}
}

最新更新