2012-02-21 5 views
0

Я стараюсь работать спокойно. моя деятельность включает в себя две кнопки, и я пытаюсь заставить одну из них работать как простая кнопка возврата (вернуться к предыдущей деятельности), какую-нибудь помощь?onBackPressed() приводит к сбою

вот мой код:

public void valider(View v) 
{ 


    c.setNomPrenom(et1.getText().toString()); 
    c.setmPortable(et2.getText().toString()); 
    c.setmFixe(et3.getText().toString()); 

    i.putExtra(ContactActivity.TAG_AJOUT_EDIT, c); 

    setResult(RESULT_OK,i); 

    finish(); 
} 

@Override 
public void onBackPressed() { 

    super.onBackPressed(); 
} 

public void retour(View v) 
{ 
    onBackPressed(); 
} 

Вот что LogCat шоу:

02-21 20:03:46.286: W/dalvikvm(1221): threadid=1: thread exiting with uncaught exception (group=0x409c01f8) 
    02-21 20:03:46.336: E/AndroidRuntime(1221): FATAL EXCEPTION: main 
    02-21 20:03:46.336: E/AndroidRuntime(1221): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=0, data=null} to activity {hd.android.contact/hd.android.contact.ContactActivity}: java.lang.NullPointerException 
    02-21 20:03:46.336: E/AndroidRuntime(1221):  at android.app.ActivityThread.deliverResults(ActivityThread.java:2980) 
    02-21 20:03:46.336: E/AndroidRuntime(1221):  at android.app.ActivityThread.handleSendResult(ActivityThread.java:3023) 
    02-21 20:03:46.336: E/AndroidRuntime(1221):  at android.app.ActivityThread.access$1100(ActivityThread.java:123) 
    02-21 20:03:46.336: E/AndroidRuntime(1221):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1177) 
    02-21 20:03:46.336: E/AndroidRuntime(1221):  at android.os.Handler.dispatchMessage(Handler.java:99) 
    02-21 20:03:46.336: E/AndroidRuntime(1221):  at android.os.Looper.loop(Looper.java:137) 
    02-21 20:03:46.336: E/AndroidRuntime(1221):  at android.app.ActivityThread.main(ActivityThread.java:4424) 
    02-21 20:03:46.336: E/AndroidRuntime(1221):  at java.lang.reflect.Method.invokeNative(Native Method) 
    02-21 20:03:46.336: E/AndroidRuntime(1221):  at java.lang.reflect.Method.invoke(Method.java:511) 
    02-21 20:03:46.336: E/AndroidRuntime(1221):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 
    02-21 20:03:46.336: E/AndroidRuntime(1221):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 
    02-21 20:03:46.336: E/AndroidRuntime(1221):  at dalvik.system.NativeStart.main(Native Method) 
    02-21 20:03:46.336: E/AndroidRuntime(1221): Caused by: java.lang.NullPointerException 
    02-21 20:03:46.336: E/AndroidRuntime(1221):  at hd.android.contact.ContactActivity.onActivityResult(ContactActivity.java:132) 
    02-21 20:03:46.336: E/AndroidRuntime(1221):  at android.app.Activity.dispatchActivityResult(Activity.java:4649) 
    02-21 20:03:46.336: E/AndroidRuntime(1221):  at android.app.ActivityThread.deliverResults(ActivityThread.java:2976) 

Спасибо заранее.

Edit:

я также попробовал это, но это не помогло:

 EditText et1,et2,et3; 
Contact c; 
Intent i=new Intent(); 
@Override 
protected void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 

    setContentView(R.layout.contact_edit); 

    c=(Contact) getIntent().getSerializableExtra("afficher"); 

    et1=(EditText) this.findViewById(R.id.editText4); 
    String str1=c.getNomPrenom(); 

    et2=(EditText) this.findViewById(R.id.editText5); 
    String str2=c.getmPortable(); 

    et3=(EditText) this.findViewById(R.id.editText6); 
    String str3=c.getmFixe(); 

    et1.setText(str1); 
    et2.setText(str2); 
    et3.setText(str3); 

    Button btn_retour=(Button) findViewById(R.id.button5); 
    btn_retour.setOnClickListener(retour); 
    Button btn_valider=(Button) findViewById(R.id.button6); 
    btn_valider.setOnClickListener(valider); 
} 
private OnClickListener valider= new OnClickListener() { 

    public void onClick(View v) { 


     c.setNomPrenom(et1.getText().toString()); 
     c.setmPortable(et2.getText().toString()); 
     c.setmFixe(et3.getText().toString()); 

     i.putExtra(ContactActivity.TAG_AJOUT_EDIT, c); 

     setResult(RESULT_OK,i); 

     finish(); 
    } 
}; 

private OnClickListener retour= new OnClickListener() { 

    public void onClick(View v) { 

     finish(); 
    } 
}; 
+0

добавьте журнал stacktrace/crash. –

+0

@Sam_D Я действительно не знаю, как его получить. Я все еще новичок. это logCat? ошибки, которые вы хотите? спасибо за ответ – Hosni

+0

Может быть это может быть полезно вам: http://stackoverflow.com/questions/2497205/how-to-return-a-result-startactivityforresult-from-a-tabhost-activity – Ratan

ответ

1

Из кода исключения вы можете увидеть, что есть где-то в NullPointerException onActivityResult. При обработке события onClick для валидатора кнопки вы вызываете метод setResult(), но вы не делаете, когда нажата кнопка retour, и это проблема, я думаю.

Смежные вопросы