AlertDialog 를 Custom(?)으로 생성해 자료 입력을 받는 창을 만들었는데 입력을 받아 저장하는 부분에서 자꾸 에러가 생기는거 같습니다.

자료를 EditText 입력하고 저장하기위해 OK버튼을 누르면 어플이 강제 종료 됩니다. 고수분들의 조언 부탁드립니다.

 

 private void DialogRepairPart(int position) {
  final int id;
  final EditText etDistance = (EditText)findViewById(R.menu2_sLayout_Dialog.etDistance);
  final EditText etDate = (EditText)findViewById(R.menu2_sLayout_Dialog.etDistance);
  final EditText etRepairAmount = (EditText)findViewById(R.menu2_sLayout_Dialog.etRepairAmount);
  final EditText etShopName = (EditText)findViewById(R.menu2_sLayout_Dialog.etShopName);
  AlertDialog.Builder alertDialog = new AlertDialog.Builder(this);
  
  mDatas = (ArrayList<DataTo>)dao.get();
  
  id = Integer.parseInt(mArray.get(position).id);
  alertDialog.setTitle(mArray.get(position).title);
  alertDialog.setView(mDialogLayout);
  alertDialog.setPositiveButton("OK", new DialogInterface.OnClickListener() {
   public void onClick(DialogInterface dialog, int which) {
    String mDistance = etDistance.getText().toString();
    String mDate = etDate.getText().toString();
    String mRepairAmount = etRepairAmount.getText().toString();
    String mShopName = etShopName.getText().toString();
    
    Log.v("SeeU_MyCar","--------------------------------------------");
    Log.v("SeeU_MyCar","------------- DialogRepairPart -------------");
    Log.v("SeeU_MyCar","--------------------------------------------");
    Log.v("SeeU_MyCar"," ID (ID + 1 ) : " + id + " (" + (id + 1) + ")" );
    Log.v("SeeU_MyCar"," Distance : " + mDistance);
    Log.v("SeeU_MyCar"," Date : " + mDate);
    Log.v("SeeU_MyCar"," RepairAmount : " + mRepairAmount);
    Log.v("SeeU_MyCar"," ShopName : " + mShopName);
    Log.v("SeeU_MyCar","--------------------------------------------");
    
    switch( id + 1 ){
     case 1: mDatas.get(Position).setCheckList01(mDistance); break;
     case 2: mDatas.get(Position).setCheckList02(mDistance); break;
     case 3: mDatas.get(Position).setCheckList03(mDistance); break;
     case 4: mDatas.get(Position).setCheckList04(mDistance); break;
     case 5: mDatas.get(Position).setCheckList05(mDistance); break;
     case 6: mDatas.get(Position).setCheckList06(mDistance); break;
     case 7: mDatas.get(Position).setCheckList07(mDistance); break;
     case 8: mDatas.get(Position).setCheckList08(mDistance); break;
     case 9: mDatas.get(Position).setCheckList09(mDistance); break;
     case 10: mDatas.get(Position).setCheckList10(mDistance); break;
     case 11: mDatas.get(Position).setCheckList11(mDistance); break;
     case 12: mDatas.get(Position).setCheckList12(mDistance); break;
     case 13: mDatas.get(Position).setCheckList13(mDistance); break;
     case 14: mDatas.get(Position).setCheckList14(mDistance); break;
     case 15: mDatas.get(Position).setCheckList15(mDistance); break;
     case 16: mDatas.get(Position).setCheckList16(mDistance); break;
     case 17: mDatas.get(Position).setCheckList17(mDistance); break;
     case 18: mDatas.get(Position).setCheckList18(mDistance); break;
     case 19: mDatas.get(Position).setCheckList19(mDistance); break;
     case 20: mDatas.get(Position).setCheckList20(mDistance); break;
    }
    
    RepairData();
   }
  });
  alertDialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
   public void onClick(DialogInterface dialog, int which) {
    dialog.cancel();
   }
  });
  AlertDialog alert = alertDialog.create();
  alert.show();
  RepairData();
 }

 

09-14 15:20:42.291: E/AndroidRuntime(898): FATAL EXCEPTION: main
09-14 15:20:42.291: E/AndroidRuntime(898): java.lang.NullPointerException
09-14 15:20:42.291: E/AndroidRuntime(898):  at seeu.mycar.menu.menu2$4.onClick(menu2.java:204)
09-14 15:20:42.291: E/AndroidRuntime(898):  at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:166)
09-14 15:20:42.291: E/AndroidRuntime(898):  at android.os.Handler.dispatchMessage(Handler.java:99)
09-14 15:20:42.291: E/AndroidRuntime(898):  at android.os.Looper.loop(Looper.java:137)
09-14 15:20:42.291: E/AndroidRuntime(898):  at android.app.ActivityThread.main(ActivityThread.java:4424)
09-14 15:20:42.291: E/AndroidRuntime(898):  at java.lang.reflect.Method.invokeNative(Native Method)
09-14 15:20:42.291: E/AndroidRuntime(898):  at java.lang.reflect.Method.invoke(Method.java:511)
09-14 15:20:42.291: E/AndroidRuntime(898):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
09-14 15:20:42.291: E/AndroidRuntime(898):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
09-14 15:20:42.291: E/AndroidRuntime(898):  at dalvik.system.NativeStart.main(Native Method)