2

Currently this is my Activity Class

Fragment fragment = null;
        switch (position) {
        case 0:
            fragment = new FragmentTripPlan();
            break;
        case 1:
            fragment = new FragmentCulturalHistorical();
            Toast.makeText(this, "cultural", Toast.LENGTH_SHORT).show();
            break;
        case 2:
            fragment = new FragmentLeisureRecreational();
            Toast.makeText(this, "Leisure", Toast.LENGTH_SHORT).show();

            break;
        case 3:
            fragment = new FragmentLipaChurches();
            break;
        case 4:
            fragment = new FragmentNaturalSite();
            Bundle bundle = new Bundle();
            bundle.putString("edttext", "From Activity");
            FragmentNaturalSite fragobj = new FragmentNaturalSite();
            fragobj.setArguments(bundle);
            break;
        case 5:
            fragment = new FragmentCreateReport();
            break;
        case 6:
            fragment = new FragmentAbout();
            break;

        default:
            break;

and Here is my Fragment Class

public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.fragment_lipa_churches, container, false);   
    // ******* vvvvvv
    Bundle bundle = getArguments();
    String strtext = bundle .getString("edttext");
return rootView;
}

and i got this error in Log Trace

01-10 13:51:43.020: E/AndroidRuntime(13708): FATAL EXCEPTION: main
01-10 13:51:43.020: E/AndroidRuntime(13708): java.lang.NullPointerException
01-10 13:51:43.020: E/AndroidRuntime(13708):    at com.c4a.itravellipaph.FragmentLipaChurches.onCreateView(FragmentLipaChurches.java:26)
01-10 13:51:43.020: E/AndroidRuntime(13708):    at android.app.Fragment.performCreateView(Fragment.java:1695)
01-10 13:51:43.020: E/AndroidRuntime(13708):    at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:903)
01-10 13:51:43.020: E/AndroidRuntime(13708):    at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1075)
01-10 13:51:43.020: E/AndroidRuntime(13708):    at android.app.BackStackRecord.run(BackStackRecord.java:682)
01-10 13:51:43.020: E/AndroidRuntime(13708):    at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1455)
01-10 13:51:43.020: E/AndroidRuntime(13708):    at android.app.FragmentManagerImpl$1.run(FragmentManager.java:441)
01-10 13:51:43.020: E/AndroidRuntime(13708):    at android.os.Handler.handleCallback(Handler.java:725)
01-10 13:51:43.020: E/AndroidRuntime(13708):    at android.os.Handler.dispatchMessage(Handler.java:92)
01-10 13:51:43.020: E/AndroidRuntime(13708):    at android.os.Looper.loop(Looper.java:137)
01-10 13:51:43.020: E/AndroidRuntime(13708):    at android.app.ActivityThread.main(ActivityThread.java:5279)
01-10 13:51:43.020: E/AndroidRuntime(13708):    at java.lang.reflect.Method.invokeNative(Native Method)
01-10 13:51:43.020: E/AndroidRuntime(13708):    at java.lang.reflect.Method.invoke(Method.java:511)
01-10 13:51:43.020: E/AndroidRuntime(13708):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
01-10 13:51:43.020: E/AndroidRuntime(13708):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
01-10 13:51:43.020: E/AndroidRuntime(13708):    at dalvik.system.NativeStart.main(Native Method)

Questions.

  1. How can I fix this?

  2. How to pass values or data from activity to fragment?

  3. Is there other way to pass value?

gunar
  • 14,660
  • 7
  • 56
  • 87
AndroidNewbie
  • 669
  • 3
  • 16
  • 23

3 Answers3

1

I don't know who is fragobj but at case 4 I think you have a typo, instead of:

FragmentLipaChurches fragobj = new FragmentLipaChurches();
fragobj.setArguments(bundle);

you should have:

fragment.setArguments(bundle);

At least FragmentLipaChurches should be handled differently since you're creating there an instance of FragmentNaturalSite but you're setting the arguments to FragmentLipaChurches. So FragmentNaturalSite doesn't have the arguments set, that's why the NPE.

gunar
  • 14,660
  • 7
  • 56
  • 87
  • so do i still need to include this in my code? or should i remove it? **FragmentLipaChurches fragobj = new FragmentLipaChurches();** – AndroidNewbie Jan 10 '14 at 06:12
  • replace **FragmentNaturalSite fragobj = new FragmentNaturalSite();fragobj.setArguments(bundle);** with **fragment.setArguments(bundle);** – gunar Jan 10 '14 at 06:18
1
  @Override
  public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
           Bundle b = getActivity().getIntent().getExtras();
           String strtext = getArguments().getString("edttext");  
           View view = inflater.inflate(R.layout.categoryfragment, container, false);
           return view;
 }
keshav
  • 3,235
  • 1
  • 16
  • 22
poojagupta
  • 982
  • 2
  • 12
  • 26
0

to pass value from activity use this

Bundle bun = new Bundle();
bun.putString("pathimage", path);
fragment_setting.setArguments(bun);

to get the vlue use this in your onCreateView in fragment

Bundle b = getArguments();
String path = b.getString("pathimage");
Fahriyal Afif
  • 560
  • 3
  • 11