Я хотел ПРОЙТИ ОБЪЕКТ МОДЕЛИ из интерфейса Fragment1 в Fragment2using (оба фрагмента в одном действии).Я получил этот объект в публичном классе Fragment2.Теперь я хочу сохранить полученный объект как глобальную переменную Fragment2.Так что я могу использовать другие методы того же Fragment2.Но ... Но ... когда я пытаюсь использовать глобальный объект в onCreateView (), получаю исключение NULL POINTER.
In Fragment1,
1. Interface declaration
interface CommunicatePricePlanCheckOutInterface {
void sendDataToCheckout( SinglePricePlanModel singleModel );
}
2. Object of Interface
CommunicatePricePlanCheckOutInterface communicationObject;
3. passing data using method of interface in, onCreateView()
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_price_plan,
container,false);
allSampleData = new ArrayList<>();
mPricePlanContinueButton.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v) {
if (getActivity() != null) {
communicationObject.sendDataToCheckout(
allSampleData.get(0));
}
}
});
return view;
}
In activity,
4. implementing the interface
public class NavDrawerActivity extends AppCompatActivity
implements NavigationView.OnNavigationItemSelectedListener,
Fragment1.CommunicatePricePlanCheckOutInterface
5. overriding interface method and in the method calling a public method of Fragment2.
@Override
public void sendDataToCheckout(SinglePricePlanModel pricePlanModel ) {
Fragment2 frag2 = new Fragment2();
frag2.receivePlanData(pricePlanModel, mUserBasicInfo);
}
In Fragment2,
6. Received 2 objects from Activity, I can use them in this method, but can not access those mSinglePricePlanModel, mUserBasicInfo objects outside this method, like onCreateView or onViewCreated. Getting Null Pointer Exception if I try to
access.
public void receivePlanData(SinglePricePlanModel mSinglePricePlanModel , UserBasicInfo mUserBasicInfo ){
this.mSinglePricePlanModel = mSinglePricePlanModel;
this.mUserBasicInfo = mUserBasicInfo;
}