Android fragments 从dialogfragment获取数据后更新数组适配器onActivityResult

Android fragments 从dialogfragment获取数据后更新数组适配器onActivityResult,android-fragments,android-arrayadapter,android-adapter,Android Fragments,Android Arrayadapter,Android Adapter,我的难题是,我从一个dialogfragment到我的WeightInfragment,有两条信息:日期和整数。我希望能够使用这两条信息,并构造一个需要添加到现有Arrayadapter的新条目。arraylist显示在weighInFragment上,我使用dialogfragment捕获新条目的信息。然而,当我尝试向适配器添加新条目时,我得到了一个null指针异常,我认为这是由于适配器为null。因此,我想知道如何获得这个适配器并能够添加新条目 这里是y onActivityResult,在

我的难题是,我从一个dialogfragment到我的WeightInfragment,有两条信息:日期和整数。我希望能够使用这两条信息,并构造一个需要添加到现有Arrayadapter的新条目。arraylist显示在weighInFragment上,我使用dialogfragment捕获新条目的信息。然而,当我尝试向适配器添加新条目时,我得到了一个null指针异常,我认为这是由于适配器为null。因此,我想知道如何获得这个适配器并能够添加新条目

这里是y onActivityResult,在我点击对话框上的save后,我在这里着陆:

    @Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
     switch(requestCode) {
     case DATEPICKER_FRAGMENT:

         if (resultCode == Activity.RESULT_OK) {
             Bundle bundle=data.getExtras();
         Date date = (Date) bundle.getSerializable("date");
         int weight = (Integer) bundle.getSerializable("weight");
         Log.d("NewEntry", "Date is: " + date + "Weight: " +weight );
         WeighInAdapter adapter = (WeighInAdapter)getListAdapter();
         WeighInEntry newEntry = new WeighInEntry();
         newEntry.setDate(date);
         newEntry.setWeight(weight);
         adapter.add(newEntry);
         adapter.notifyDataSetChanged();
         } else if (resultCode == Activity.RESULT_CANCELED){

         }
         break;
 }
}
这是我在dialogadapter中获取数据的地方:

     @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
     AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
        // Get the layout inflater

       // LayoutInflater inflater = getActivity().getLayoutInflater();
     final View v = getActivity().getLayoutInflater()
                .inflate(R.layout.weigh_in_dialog, null);

        // Inflate and set the layout for the dialog
        // Pass null as the parent view because its going in the dialog layout
        builder.setView(v)
        // Add action buttons
               .setPositiveButton(R.string.save, new DialogInterface.OnClickListener() {
                   @Override
                   public void onClick(DialogInterface dialog, int which) {
                       DatePicker datePicker = (DatePicker)v.findViewById(R.id.datePicker1);
                       EditText weightAmount = (EditText) v.findViewById(R.id.weight);


                       mDate = getDateFromDatePicket(datePicker);
                       mWeight = Integer.parseInt(weightAmount.getText().toString());       

                       Intent i = new Intent();
                       Bundle extras=new Bundle();       
                       extras.putSerializable("date", mDate); //putString("date",Month);
                       extras.putInt("weight",mWeight);
                       i.putExtras(extras);
                       getTargetFragment().onActivityResult(getTargetRequestCode(),Activity.RESULT_OK,i);
                       dismiss() ;

                   }
               })
               .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
                   public void onClick(DialogInterface dialog, int id) {
                       NewEntryDialogFragment.this.getDialog().cancel();
                       Log.d("CANCEL WAS PRESSED:", "!!!!!!!!!!!!");
                   }
               });      
        return builder.create();
}
这是logcat错误:

    11-17 17:42:51.050: D/NewEntry(2593): Date is: Tue Nov 17 17:42:51 EST 2015Weight: 200
11-17 17:42:51.060: D/AndroidRuntime(2593): Shutting down VM
11-17 17:42:51.060: W/dalvikvm(2593): threadid=1: thread exiting with uncaught exception (group=0xb1ae9b90)
11-17 17:42:51.070: E/AndroidRuntime(2593): FATAL EXCEPTION: main
11-17 17:42:51.070: E/AndroidRuntime(2593): Process: edu.bu.juanl.finalproject, PID: 2593
11-17 17:42:51.070: E/AndroidRuntime(2593): java.lang.NullPointerException
11-17 17:42:51.070: E/AndroidRuntime(2593):     at edu.bu.juanl.finalproject.WeighInFragment.onActivityResult(WeighInFragment.java:141)
11-17 17:42:51.070: E/AndroidRuntime(2593):     at edu.bu.juanl.finalproject.NewEntryDialogFragment$1.onClick(NewEntryDialogFragment.java:84)
11-17 17:42:51.070: E/AndroidRuntime(2593):     at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:166)
11-17 17:42:51.070: E/AndroidRuntime(2593):     at android.os.Handler.dispatchMessage(Handler.java:102)
11-17 17:42:51.070: E/AndroidRuntime(2593):     at android.os.Looper.loop(Looper.java:137)
11-17 17:42:51.070: E/AndroidRuntime(2593):     at android.app.ActivityThread.main(ActivityThread.java:4998)
11-17 17:42:51.070: E/AndroidRuntime(2593):     at java.lang.reflect.Method.invokeNative(Native Method)
11-17 17:42:51.070: E/AndroidRuntime(2593):     at java.lang.reflect.Method.invoke(Method.java:515)
11-17 17:42:51.070: E/AndroidRuntime(2593):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777)
11-17 17:42:51.070: E/AndroidRuntime(2593):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593)
11-17 17:42:51.070: E/AndroidRuntime(2593):     at dalvik.system.NativeStart.main(Native Method)
11-17 17:42:53.440: I/Process(2593): Sending signal. PID: 2593 SIG: 9

我尝试了很多东西,但我都想不出来

DialogPickerFragment从用户输入数据,这需要反映在包含listview的不同对话框片段中

数据正在传递给父活动,它正在尝试访问属于listview片段的元素。问题就在这里。该活动将无权访问片段列表适配器

您应该做的是在活动和listview片段之间实现一个接口,并传入数据