2014-05-15 3 views
-2

사용자가 "제출"버튼을 클릭하면 HomeActivity에 어린이 프로필을 설정하고 싶습니다. 나는 모든 데이터를 데이터베이스에 저장하고 있으며 작동 중입니다. 그러나 "제출"버튼을 클릭하면 응용 프로그램이 충돌합니다. 데이터는 KidsProfileActivity에서 HomeActivity으로 전달되지 않습니다.버튼을 클릭하여 의도 한 다른 활동으로 데이터 보내기

KidsProfileActivity.java

btnSubmit.setOnClickListener(new View.OnClickListener() { 

    @Override 
    public void onClick(View arg0) { 

     strKidsName = edtKidsName.getText().toString(); 
     strKidsBirthDate = edtKidsBirthDate.getText().toString(); 
     strKidsBirthTime = edtKidsBirthTime.getText().toString(); 
     strKidsWeight = edtKidsWeight.getText().toString(); 
     strKidsHeight = edtKidsHeight.getText().toString(); 
     strKidsHeadCircumference = edtKidsHeadCircumference.getText() 
       .toString(); 
     strHealthStatus = spHealthStatus.getSelectedItem().toString(); 

     if (rbtnBoy.isChecked()) { 
      strGenderValue = "Boy"; 
     } else { 
      strGenderValue = "Girl"; 
     } 

     if (strKidsName.equals("")) { 
      ting("Please Enter Kids"); 
     } else if (strKidsBirthDate.equals("")) { 
      ting("Please Enter BirthDate"); 
     } else if (strKidsBirthTime.equals("")) { 
      ting("Please Enter BirthTime"); 
     } else if (strKidsHeight.equals("")) { 
      ting("Please Enter Weight"); 
     } else if (strKidsWeight.equals("")) { 
      ting("Please Enter Weight"); 
     } else if (strKidsHeadCircumference.equals("")) { 
      ting("Please Enter HeadCircumference"); 
     } 

     else if (strHealthStatus.equals("")) { 
      ting("Please Select HealthStatus"); 
     } 

     else { 
      masterDatabaseAdapter.kidsProfileEntry(strKidsName, 
        strKidsBirthDate, strKidsBirthTime, strGenderValue, 
        strKidsHeight, strKidsWeight, 
        strKidsHeadCircumference, strHealthStatus); 
      Intent displaykidsProfile = new Intent(
        KidsProfileActivity.this, HomeActivity.class); 

      displaykidsProfile.putExtra("kidsname", strKidsName); 
      displaykidsProfile.putExtra("birthdate", strKidsBirthDate); 
      displaykidsProfile.putExtra("birthtime", strKidsBirthTime); 
      displaykidsProfile.putExtra("height", strKidsHeight); 
      displaykidsProfile.putExtra("weight", strKidsWeight); 
      displaykidsProfile.putExtra("head", 
        strKidsHeadCircumference); 
      displaykidsProfile.putExtra("health", strHealthStatus); 

      startActivity(displaykidsProfile); 
     } 

HomeActivity.java

myIntent = getIntent(); 
if (myIntent.hasExtra("kidsname") && myIntent.hasExtra("birthdate") 
     && myIntent.hasExtra("birthtime") 
     && myIntent.hasExtra("height") && myIntent.hasExtra("weight")&& myIntent.hasExtra("head")&& myIntent.hasExtra("health")) 
{ 

    tvKidsName.setText(myIntent.getStringExtra("kidsname")); 
    tvKidsBirthDate.setText(myIntent.getStringExtra("birthdate")); 
    tvKidsBirthTime.setText(myIntent.getStringExtra("birthtime")); 
    tvKidsHeight.setText(myIntent.getStringExtra("height")); 
    tvKidsWeight.setText(myIntent.getStringExtra("weight")); 
    tvKidsHeadCircumference.setText(myIntent.getStringExtra("head")); 
    tvHealthStatus.setText(myIntent.getStringExtra("health")); 

} else { 
    showAlert("Enter Kids Profile First"); 
} 

로그 캣

05-15 11:28:22.016: E/AndroidRuntime(1508): FATAL EXCEPTION: main 
05-15 11:28:22.016: E/AndroidRuntime(1508): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.slidingmenuexample/com.example.kidsfinal.HomeActivity}: java.lang.NullPointerException 
05-15 11:28:22.016: E/AndroidRuntime(1508):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059) 
05-15 11:28:22.016: E/AndroidRuntime(1508):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084) 
05-15 11:28:22.016: E/AndroidRuntime(1508):  at android.app.ActivityThread.access$600(ActivityThread.java:130) 
05-15 11:28:22.016: E/AndroidRuntime(1508):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195) 
05-15 11:28:22.016: E/AndroidRuntime(1508):  at android.os.Handler.dispatchMessage(Handler.java:99) 
05-15 11:28:22.016: E/AndroidRuntime(1508):  at android.os.Looper.loop(Looper.java:137) 
05-15 11:28:22.016: E/AndroidRuntime(1508):  at android.app.ActivityThread.main(ActivityThread.java:4745) 
05-15 11:28:22.016: E/AndroidRuntime(1508):  at java.lang.reflect.Method.invokeNative(Native Method) 
05-15 11:28:22.016: E/AndroidRuntime(1508):  at java.lang.reflect.Method.invoke(Method.java:511) 
05-15 11:28:22.016: E/AndroidRuntime(1508):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 
05-15 11:28:22.016: E/AndroidRuntime(1508):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
05-15 11:28:22.016: E/AndroidRuntime(1508):  at dalvik.system.NativeStart.main(Native Method) 
05-15 11:28:22.016: E/AndroidRuntime(1508): Caused by: java.lang.NullPointerException 
05-15 11:28:22.016: E/AndroidRuntime(1508):  at com.example.kidsfinal.HomeActivity.initComponent(HomeActivity.java:74) 
05-15 11:28:22.016: E/AndroidRuntime(1508):  at com.example.kidsfinal.HomeActivity.onCreate(HomeActivity.java:37) 
05-15 11:28:22.016: E/AndroidRuntime(1508):  at android.app.Activity.performCreate(Activity.java:5008) 
05-15 11:28:22.016: E/AndroidRuntime(1508):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079) 
05-15 11:28:22.016: E/AndroidRuntime(1508):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023) 
+1

logcat 출력을 게시 할 수 있습니까? – nurisezgin

+0

@nurisezgin : - 게시 됨 – user5111

+0

btnSubmit에 대한 올바른 ID를 선언 했습니까? 즉 'btnSubmit = (Button) findViewById (R.id.your_id);'그리고 '팅 (ting)'은 무엇입니까? – Aniruddha

답변

1
 Bundle myIntent = getIntent().getExtras(); 

if (myIntent.hasExtra("kidsname") && myIntent.hasExtra("birthdate") 
     && myIntent.hasExtra("birthtime") 
     && myIntent.hasExtra("height") && myIntent.hasExtra("weight")&& myIntent.hasExtra("head")&& myIntent.hasExtra("health")) 
{ 

    tvKidsName.setText(myIntent.getStringExtra("kidsname")); 
    tvKidsBirthDate.setText(myIntent.getStringExtra("birthdate")); 
    tvKidsBirthTime.setText(myIntent.getStringExtra("birthtime")); 
    tvKidsHeight.setText(myIntent.getStringExtra("height")); 
    tvKidsWeight.setText(myIntent.getStringExtra("weight")); 
    tvKidsHeadCircumference.setText(myIntent.getStringExtra("head")); 
    tvHealthStatus.setText(myIntent.getStringExtra("health")); 

} else { 
    showAlert("Enter Kids Profile First"); 
} 
.

문제점 의도 라인 얻을이다

번들 myIntent = getIntent()를 getExtras();

대신

myIntent = getIntent()를;

나는 당신에게 유용 할 것입니다.

0

당신은 의도로부터 엑스트라를 얻어야합니다. getIntent(). getExtras()를 시도하고 계속하십시오.

관련 문제