-3

我创建了一个具有viewpager的fragmentactivity(MainActivity),我有3个listfragments。当在列表片段(AllPatient)之一中按下listitem时,另一个片段活动(PrescAct)打开,其中包含具有3个片段的viewpager。将数据从活动传递到片段

我的问题是,当按AllPatient列表项时,patient_id被传递给PrescAct,而PrescAct又将该值传递给DocPresc片段。我在DocPresc.class的pid = b.getString("TAG_PATIENT_ID1");处得到空指针异常。

请建议,我在这个问题上停留了一段时间。

以下是代码。

MainActivity FragmentActivity:

public class MainActivity extends FragmentActivity { 
    /** Called when the activity is first created. */ 
    static AppSectionsPagerAdapter mAppSectionsPagerAdapter; 

    ViewPager mViewPager; 
    SearchView mSearchView; 
    MenuItem menuSearch; 
    Boolean flag = false; 
    String pid; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
       WindowManager.LayoutParams.FLAG_FULLSCREEN); 

     setupActionBar(); 
     //getActionBar().setTitle("All Patients"); 

     mAppSectionsPagerAdapter = new AppSectionsPagerAdapter(getSupportFragmentManager()); 


     // Set up the ViewPager, attaching the adapter and setting up a listener for when the 
     // user swipes between sections. 
     mViewPager = (ViewPager) findViewById(R.id.pager); 
     mViewPager.setAdapter(mAppSectionsPagerAdapter); 
     mViewPager.setOffscreenPageLimit(3); 
     mViewPager.setCurrentItem(0); 
     mViewPager.setOnPageChangeListener(new OnPageChangeListener() 
     { 
      public void onPageSelected(int position) 
      { 
       //mAppSectionsPagerAdapter.getItemPosition(getFragmentManager().findFragmentById(position)); 
       //getActionBar().setTitle(mAppSectionsPagerAdapter.getPageTitle(position)); 
      // getActionBar().setTitle(getTitle(position)); 
       //mAppSectionsPagerAdapter.notifyDataSetChanged(); 

       if(position==0){ 
        getActionBar().setTitle("All Patients"); 
        flag = true; 
       // menuSearch.setVisible(true); 
        //menuSearch. 
        invalidateOptionsMenu(); 

       } 
       if(position==1){ 
        getActionBar().setTitle("All Doctors"); 
        flag=false; 
       // menuSearch.setVisible(false); 
        invalidateOptionsMenu(); 
       } 
       else 
        getActionBar().setTitle("All Nurses"); 
       invalidateOptionsMenu(); 

      } 

      public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) 
      { 

      } 

      public void onPageScrollStateChanged(int state) 
      { 
       if (state == ViewPager.SCROLL_STATE_DRAGGING) 
       { 

       } 
       if (state == ViewPager.SCROLL_STATE_IDLE) 
       { 

       } 
      } 
     }); 
    } 
    /** 
    * A {@link FragmentPagerAdapter} that returns a fragment corresponding to one of the primary 
    * sections of the app. 
    */ 
    public static class AppSectionsPagerAdapter extends FragmentPagerAdapter { 

     public AppSectionsPagerAdapter(FragmentManager fm) { 
      super(fm); 
     } 

     @Override 
     public Fragment getItem(int i) { 
      switch (i) { 
      case 0: 
       // The first section of the app is the most interesting -- it offers 
       // a launchpad into the other demonstrations in this example application. 

       return new AllPatient(); 


      case 1: 

       //Intent intent = new Intent(MainActivity.this,abc.class); 
       return new AllDoctors(); 



      case 2: 
       return new AllNurses(); 
      } 
      return null; 
     } 

     @Override 
     public int getCount() { 
      return 3; 
     } 
    } 
} 

AllPatient ListFragment:

public class AllPatient extends ListFragment { 


    // Creating JSON Parser object 
    JSONParser jParser = new JSONParser(); 

    ArrayList<HashMap<String, String>> productsList = new ArrayList<HashMap<String,String>>(); 

    // url to get all products list 
    private static String url_all_patients = "http://192.168.44.208/get_all_patients.php"; 

    // JSON Node names 
    private static final String TAG_SUCCESS = "success"; 
    private static final String TAG_PRODUCTS = "products"; 
    private static final String TAG_PATIENT_ID = "patient_id"; 
    private static final String TAG_PATIENT_NAME = "patient_name"; 

    JSONArray products = null; 

    Context ctx; 
    String pid; 
    EditText inputSearch; 
    ListAdapter adapter; 
    ListView lv; 


    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 

     View view = inflater.inflate(R.layout.patient_list, container, false); 
     //ListView lv; 

    // lv = (ListView)view.findViewById(android.R.id.list); 

     //ListView v = getListView(); 
     getActivity().getActionBar().setTitle("All Patients"); 






     new LoadAllPatients().execute(); 




     return view;   
    }  





    @Override 
    public void onListItemClick(ListView lv, View v, int position, long id) { 
     // TODO Auto-generated method stub 

     onAttach(getActivity()); 
     //lv.setAdapter(adapter); 


     String id1 = ((TextView) v.findViewById(R.id.pid)).getText().toString(); 
     System.out.println("all patient"+id1); 

     Bundle bundle = new Bundle(); 
     bundle.putString("TAG_PATIENT_ID",id1); 
     System.out.println("bundle"+id1); 
     Intent i = new Intent(getActivity(),PrescAct.class); 
     i.putExtras(bundle); 
     startActivity(i); 





     //passData(date); 


     Toast.makeText(
       getActivity(), 
       getListView().getItemAtPosition(position).toString(), 
       Toast.LENGTH_LONG).show(); 
    } 





    class LoadAllPatients extends AsyncTask<String, String, String> { 


     protected String doInBackground(String... args) { 
      // Building Parameters 
      List<NameValuePair> params = new ArrayList<NameValuePair>(); 
      // getting JSON string from URL 
      JSONObject json = jParser.makeHttpRequest(url_all_patients, "GET", params); 

      // Check your log cat for JSON reponse 
     Log.d("All Patients: ", json.toString()); 

      try { 
       // Checking for SUCCESS TAG 
       int success = json.getInt(TAG_SUCCESS); 

       if (success == 1) { 
        // products found 
        // Getting Array of Products 
        products = json.getJSONArray(TAG_PRODUCTS); 

        // looping through All Products 
        for (int i = 0; i < products.length(); i++) { 
         JSONObject c = products.getJSONObject(i); 

         // Storing each json item in variable 
         String id = c.getString(TAG_PATIENT_ID).toUpperCase(); 
         String name = c.getString(TAG_PATIENT_NAME).toUpperCase(); 

         // creating new HashMap 
         HashMap<String, String> map = new HashMap<String, String>(); 

         // adding each child node to HashMap key => value 
         map.put(TAG_PATIENT_ID, id); 
         map.put(TAG_PATIENT_NAME, name); 

         // adding HashList to ArrayList 
         productsList.add(map); 
         Collections.sort(productsList, new Comparator<Map<String, String>>() { 

          public int compare(Map<String, String> o1, Map<String, String> o2) { 
           String name1 = o1.get("patient_name"); 
           String name2 = o2.get("patient_name"); 
           if (name1 == null) return -1; 
           return name1.compareTo(name2); 
          } 
         }); 

        } 
       } else { 

       } 
      } catch (JSONException e) { 
       e.printStackTrace(); 
      } 

      return null; 
     } 


     /** 
     * After completing background task Dismiss the progress dialog 
     * **/ 
     protected void onPostExecute(String file_url) { 
      // dismiss the dialog after getting all products 
      // pDialog.dismiss(); 
      // updating UI from Background Thread 

      getActivity().runOnUiThread(new Runnable() { 
       public void run() { 

        ListAdapter adapter = new SimpleAdapter(
          getActivity(), productsList, 
          R.layout.list_item1, new String[] { TAG_PATIENT_ID, 
           TAG_PATIENT_NAME}, 
           new int[] { R.id.pid, R.id.name }); 
        // updating listview 
        //setListAdapter(adapter); 
        setListAdapter(adapter); 
        inputSearch = (EditText)getView().findViewById(R.id.inputSearch); 
        inputSearch.addTextChangedListener(new TextWatcher() { 

         @Override 
         public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) { 
          // When user changed the Text 
          //ListView lv = getListView(); 
          ((SimpleAdapter) getListAdapter()).getFilter().filter(cs); 
         } 

         @Override 
         public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, 
           int arg3) { 
          // TODO Auto-generated method stub 

         } 

         @Override 
         public void afterTextChanged(Editable arg0) { 
          // TODO Auto-generated method stub 

         } 
        }); 



       } 

      }); 

     } 







    } 

这里是PrescAct FragmentActivity:

public class PrescAct extends FragmentActivity { 
    /** Called when the activity is first created. */ 
    static AppSectionsPagerAdapter mAppSectionsPagerAdapter; 

    ViewPager mViewPager; 
    SearchView mSearchView; 
    MenuItem menuSearch; 
    Boolean flag = false; 
    String pid; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.prescact); 

     this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
       WindowManager.LayoutParams.FLAG_FULLSCREEN); 

     setupActionBar(); 
     //getActionBar().setTitle("All Patients"); 
     // Getting value of pid from all patient 
     Intent i = getIntent(); 

     Bundle extras = i.getExtras(); 
     pid = extras.getString("TAG_PATIENT_ID"); 
     System.out.println("Pid in prescact"+pid); 
     // Bundle bundle = new Bundle(); 

     /* bundle.putString("TAG_PATIENT_ID",pid); 
     Intent m = new Intent(PrescAct.this,DocPresc1.class); 
      m.putExtras(bundle);*/ 
    //Passing pid value to the list fragment   
     Bundle b = new Bundle(); 
     b.putString("TAG_PATIENT_ID1",pid); 
     Fragment f = new DocPresc1(); 
     f.setArguments(b); 





     mAppSectionsPagerAdapter = new AppSectionsPagerAdapter(getSupportFragmentManager()); 


     // Set up the ViewPager, attaching the adapter and setting up a listener for when the 
     // user swipes between sections. 
     mViewPager = (ViewPager) findViewById(R.id.pager1); 
     mViewPager.setAdapter(mAppSectionsPagerAdapter); 
     mViewPager.setOffscreenPageLimit(3); 
     mViewPager.setCurrentItem(2); 
     mViewPager.setOnPageChangeListener(new OnPageChangeListener() 
     { 
      public void onPageSelected(int position) 
      { 
       //mAppSectionsPagerAdapter.getItemPosition(getFragmentManager().findFragmentById(position)); 
       //getActionBar().setTitle(mAppSectionsPagerAdapter.getPageTitle(position)); 
      // getActionBar().setTitle(getTitle(position)); 
       //mAppSectionsPagerAdapter.notifyDataSetChanged(); 

       if(position==0){ 
        getActionBar().setTitle("Prescription1"); 
        flag = true; 
       // menuSearch.setVisible(true); 
        //menuSearch. 
        invalidateOptionsMenu(); 

       } 
       if(position==1){ 
        getActionBar().setTitle("Prescription2"); 
        flag=false; 
       // menuSearch.setVisible(false); 
        invalidateOptionsMenu(); 
       } 
       else 
        System.out.println("today fragment"); 
        getActionBar().setTitle("Today's Prescription"); 
       invalidateOptionsMenu(); 

      } 

      public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) 
      { 

      } 

      public void onPageScrollStateChanged(int state) 
      { 
       if (state == ViewPager.SCROLL_STATE_DRAGGING) 
       { 

       } 
       if (state == ViewPager.SCROLL_STATE_IDLE) 
       { 

       } 
      } 
     }); 
    } 
    /** 
    * A {@link FragmentPagerAdapter} that returns a fragment corresponding to one of the primary 
    * sections of the app. 
    */ 
    public static class AppSectionsPagerAdapter extends FragmentPagerAdapter { 

     public AppSectionsPagerAdapter(FragmentManager fm) { 
      super(fm); 
     } 

     @Override 
     public Fragment getItem(int i) { 
      switch (i) { 
      case 0: 
       // The first section of the app is the most interesting -- it offers 
       // a launchpad into the other demonstrations in this example application. 

       return new AllPatient(); 


      case 1: 

       //Intent intent = new Intent(MainActivity.this,abc.class); 
       return new AllDoctors(); 



      case 2: 
       System.out.println("today fragment called"); 
       return new DocPresc1(); 
      } 
      return null; 
     } 

     @Override 
     public int getCount() { 
      return 3; 
     } 
    } 

这里是DocPresc片段:

public class DocPresc1 extends ListFragment { 

    //public static Context ctx; 
    JSONParser jParser = new JSONParser(); 

    ArrayList<HashMap<String, String>> productsList = new ArrayList<HashMap<String,String>>(); 

     String pid; 
     JSONArray products = null; 
     EditText ailm,date,comment; 
     Button delete; 
     ListAdapter adapter; 
     JSONParser jsonParser = new JSONParser(); 

     // single product url 
     private static final String url_patient_presc = "http://192.168.44.208/get_prescription.php"; 


     // JSON Node names 
     private static final String TAG_SUCCESS = "success"; 
     private static final String TAG_PRODUCTS = "products"; 
     // private static final String TAG_PATIENT_ID = "patient_id"; 
     private static final String TAG_AIL = "ailment"; 
     private static final String[] TAG_MED = {"medicine_id","medicine_id2"}; 
     private static final String TAG_D1 = "qty1"; 
     private static final String TAG_D2 = "qty2"; 
     private static final String TAG_D3 = "qty3"; 
     private static final String TAG_DATE = "prescription_date"; 
     private static final String TAG_COM = "comment"; 
     private static final String TAG_PRESCRIPTION = "prescription_id"; 
     //private static final String TAG_DID = "dosage_id"; 
     // private static final String TAG_MED1_D1 = "m1dosage"; 
     private static final String[] TAG_MED_D = {"m1dosage","m2dosage"}; 

     public View onCreateView(LayoutInflater inflater, ViewGroup container, 
       Bundle savedInstanceState) { 

      View view = inflater.inflate(R.layout.docpresc1, container, false); 
      // setContentView(R.layout.docpresc); 
      StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder() 
       .detectDiskReads().detectDiskWrites().detectNetwork() // StrictMode is most commonly used to catch accidental disk or network access on the application's main thread 
       .penaltyLog().build()); 


     // Intent i = getIntent(); 

      //Intent i = new Intent(getApplicationContext);//,PrescAct.class); 
      /* Bundle extras = i.getExtras(); 
      pid = extras.getString("TAG_PATIENT_ID");*/ 



      Bundle b = getArguments(); 
      pid = b.getString("TAG_PATIENT_ID1"); 
      // System.out.println("Docpresc"+pid); 

      // pid=getArguments().getString("TAG_PATIENT_ID1"); 
      System.out.println("Docpresc"+pid); 



       // return inflater.inflate(R.layout.fragment, container, false); 

      ailm = (EditText)getView().findViewById(R.id.ailment1); 
      date = (EditText)getView().findViewById(R.id.date1); 
      comment = (EditText)getView().findViewById(R.id.comment1); 


      // if (savedInstanceState == null) { 

       new LoadPrescriptions().execute(); 
      // } 



      return view; 
       // return inflater.inflate(R.layout.fragment, container, false); 


     } 





     class LoadPrescriptions extends AsyncTask<String, String, String> { 


      protected String doInBackground(String... args) { 
       // Building Parameters 

       getActivity().runOnUiThread(new Runnable() { 
         public void run() { 

       try { 
        List<NameValuePair> params = new ArrayList<NameValuePair>(); 
        //pid=getArguments().getString("TAG_PATIENT_ID1"); 
        // System.out.println("Docpresc"+pid); 
       // getting JSON string from URL 
       params.add(new BasicNameValuePair("patient_id",pid));//search1.getText().toString())); 
       System.out.println("database"+pid); 
       JSONObject json = jParser.makeHttpRequest(url_patient_presc, "GET", params); 

       // Check your log cat for JSON reponse 
      Log.d("All Patients: ", json.toString()); 


        // Checking for SUCCESS TAG 
        int success = json.getInt(TAG_SUCCESS); 

        if (success == 1) { 
         // products found 
         // Getting Array of Products 
         products = json.getJSONArray(TAG_PRODUCTS); 

         //----------------------------------- 
         /*JSONObject product = products.getJSONObject(0); 

         ailm = (EditText)findViewById(R.id.ailment1); 
         ailm.setText(product.getString(TAG_AIL));*/ 
         // looping through All Products 
         for (int i = 0; i < products.length(); i++) { 
          JSONObject c = products.getJSONObject(i); 

          // Storing each json item in variable 
           for(int m =0;m<2;m++){ 


          String medicine = c.getString(TAG_MED[m]).toUpperCase(); 
          String prescription = c.getString(TAG_PRESCRIPTION); 



          //String medicine[] = ((String) c.get(TAG_MED[i])).toUpperCase(); 
         // String qty1 = c.getString(TAG_D1).toUpperCase(); 
         // String qty2 = c.getString(TAG_D2).toUpperCase(); 
         // String qty3 = c.getString(TAG_D3).toUpperCase(); 
          String dosage = c.getString(TAG_MED_D[m]); 

         // String dsg_id = c.getString(TAG_DID).toUpperCase(); 
          //String ail = c.getString(TAG_AIL).toUpperCase(); 
         //getting 3 bytes from dosage1 
          String do1 = Character.toString(dosage.charAt(0)); 
          String do2 = Character.toString(dosage.charAt(1)); 
          String do3 = Character.toString(dosage.charAt(2)); 
          //char do2 = dosage1.charAt(1); 
          //char do3 = dosage1.charAt(2); 




          ailm.setText(c.getString(TAG_AIL)); 
          date.setText(c.getString(TAG_DATE)); 
          comment.setText(c.getString(TAG_COM)); 


          // creating new HashMap 
          HashMap<String, String> map = new HashMap<String, String>(); 

          // adding each child node to HashMap key => value 
          System.out.println("medicine"+medicine+m); 
          if(medicine.equals("NULL")==false){ 
           System.out.println("medicine in if"+medicine+m); 
          map.put(TAG_MED[i], medicine); 
          map.put(TAG_MED_D[i],dosage); 
          map.put(TAG_D1,do1); 
          map.put(TAG_D2,do2); 
          map.put(TAG_D3,do3); 
          map.put(TAG_PRESCRIPTION,prescription); 
         // map.put(TAG_DID,dsg_id); 


          //if(map.containsValue(null)==false) 

          // adding HashList to ArrayList 

           productsList.add(map); 
           //if (productsList.get(m).containsValue(null)) 
          // productsList.remove(m); 
          System.out.println("productsList"+m+productsList); 

          } 
           } 
           } 


        } else { 

        } 
       } catch (JSONException e) { 
        e.printStackTrace(); 
       } 
         } 
         }); 
       return null; 
      } 


      /** 
      * After completing background task Dismiss the progress dialog 
      * **/ 
      protected void onPostExecute(String file_url) { 
       // dismiss the dialog after getting all products 
       // pDialog.dismiss(); 
       // updating UI from Background Thread 

       getActivity().runOnUiThread(new Runnable() { 
        public void run() { 

         //ListAdapter 
         adapter = new SimpleAdapter(
           getActivity(), productsList, 
           R.layout.list_item2, new String[] { 
            TAG_MED[0],TAG_D1,TAG_D2,TAG_D3,TAG_MED_D[0],TAG_PRESCRIPTION}, 
             // TAG_MED,TAG_MED1_D1}, 
            new int[] {R.id.med,R.id.d1,R.id.d2,R.id.d3,R.id.dos1,R.id.pres}); 
            // new int[] {R.id.med,R.id.dos1}); 
         // updating listview 
         //setListAdapter(adapter); 

         setListAdapter(adapter); 



        } 

       }); 

      } 

     } 

这里是堆栈跟踪:

06-20 12:44:34.767: E/AndroidRuntime(9394): FATAL EXCEPTION: main 
06-20 12:44:34.767: E/AndroidRuntime(9394): java.lang.NullPointerException 
06-20 12:44:34.767: E/AndroidRuntime(9394):  at com.example.actionbar.DocPresc1.onCreateView(DocPresc1.java:104) 
06-20 12:44:34.767: E/AndroidRuntime(9394):  at android.support.v4.app.Fragment.performCreateView(Fragment.java:1460) 
06-20 12:44:34.767: E/AndroidRuntime(9394):  at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:911) 
06-20 12:44:34.767: E/AndroidRuntime(9394):  at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1088) 
06-20 12:44:34.767: E/AndroidRuntime(9394):  at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682) 
06-20 12:44:34.767: E/AndroidRuntime(9394):  at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1444) 
06-20 12:44:34.767: E/AndroidRuntime(9394):  at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:461) 
06-20 12:44:34.767: E/AndroidRuntime(9394):  at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:141) 
06-20 12:44:34.767: E/AndroidRuntime(9394):  at android.support.v4.view.ViewPager.populate(ViewPager.java:1011) 
06-20 12:44:34.767: E/AndroidRuntime(9394):  at android.support.v4.view.ViewPager.populate(ViewPager.java:880) 
06-20 12:44:34.767: E/AndroidRuntime(9394):  at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1374) 
06-20 12:44:34.767: E/AndroidRuntime(9394):  at android.view.View.measure(View.java:15479) 
06-20 12:44:34.767: E/AndroidRuntime(9394):  at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:617) 
06-20 12:44:34.767: E/AndroidRuntime(9394):  at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:399) 
06-20 12:44:34.767: E/AndroidRuntime(9394):  at android.view.View.measure(View.java:15479) 
06-20 12:44:34.767: E/AndroidRuntime(9394):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4828) 
06-20 12:44:34.767: E/AndroidRuntime(9394):  at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) 
06-20 12:44:34.767: E/AndroidRuntime(9394):  at android.view.View.measure(View.java:15479) 
06-20 12:44:34.767: E/AndroidRuntime(9394):  at android.widget.LinearLayout.measureVertical(LinearLayout.java:833) 
06-20 12:44:34.767: E/AndroidRuntime(9394):  at android.widget.LinearLayout.onMeasure(LinearLayout.java:574) 
06-20 12:44:34.767: E/AndroidRuntime(9394):  at android.view.View.measure(View.java:15479) 
06-20 12:44:34.767: E/AndroidRuntime(9394):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4828) 
06-20 12:44:34.767: E/AndroidRuntime(9394):  at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) 
06-20 12:44:34.767: E/AndroidRuntime(9394):  at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2359) 
06-20 12:44:34.767: E/AndroidRuntime(9394):  at android.view.View.measure(View.java:15479) 
06-20 12:44:34.767: E/AndroidRuntime(9394):  at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1968) 
06-20 12:44:34.767: E/AndroidRuntime(9394):  at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1214) 
06-20 12:44:34.767: E/AndroidRuntime(9394):  at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1387) 
06-20 12:44:34.767: E/AndroidRuntime(9394):  at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1107) 
06-20 12:44:34.767: E/AndroidRuntime(9394):  at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4464) 
06-20 12:44:34.767: E/AndroidRuntime(9394):  at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725) 
06-20 12:44:34.767: E/AndroidRuntime(9394):  at android.view.Choreographer.doCallbacks(Choreographer.java:555) 
06-20 12:44:34.767: E/AndroidRuntime(9394):  at android.view.Choreographer.doFrame(Choreographer.java:525) 
06-20 12:44:34.767: E/AndroidRuntime(9394):  at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711) 
06-20 12:44:34.767: E/AndroidRuntime(9394):  at android.os.Handler.handleCallback(Handler.java:615) 
06-20 12:44:34.767: E/AndroidRuntime(9394):  at android.os.Handler.dispatchMessage(Handler.java:92) 
06-20 12:44:34.767: E/AndroidRuntime(9394):  at android.os.Looper.loop(Looper.java:137) 
06-20 12:44:34.767: E/AndroidRuntime(9394):  at android.app.ActivityThread.main(ActivityThread.java:4895) 
06-20 12:44:34.767: E/AndroidRuntime(9394):  at java.lang.reflect.Method.invokeNative(Native Method) 
06-20 12:44:34.767: E/AndroidRuntime(9394):  at java.lang.reflect.Method.invoke(Method.java:511) 
06-20 12:44:34.767: E/AndroidRuntime(9394):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:994) 
06-20 12:44:34.767: E/AndroidRuntime(9394):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:761) 
06-20 12:44:34.767: E/AndroidRuntime(9394):  at dalvik.system.NativeStart.main(Native Method) 
+0

请帮我........... –

+0

你找出如何解决问题了吗?我想在此为周围的热情好客道歉。远远不止这个网站上的许多开发人员拥有上帝的复合体,并且很方便地忘记了他们是新人时的情况。有时,我认为他们故意殴打新人,以阻止他们试图学习保护他们的高薪不受压缩。请不要气馁在这里张贴,我保证它会变得更好,一旦你有100个左右的分数,人人开始尊重你的问题更多 – ChuckKelly

回答

0
ailm = (EditText)getView().findViewById(R.id.ailment1); 
date = (EditText)getView().findViewById(R.id.date1); 
comment = (EditText)getView().findViewById(R.id.comment1); 
return view; 

Fragment.getView()retuns你在onCreateView已经返回,所以你不能onCreateView返回之前使用。改变这种方式

ailm = (EditText)view.findViewById(R.id.ailment1); 
date = (EditText)view.findViewById(R.id.date1); 
comment = (EditText)view.findViewById(R.id.comment1); 

从Android documentation

Get the root view for the fragment's layout (the one returned by onCreateView(LayoutInflater, ViewGroup, Bundle)), if provided. 

Returns 
The fragment's root view, or null if it has no layout. 
+0

Thnx但我仍然在同一行上获得NUll指针。 –