이 활동에 문제가 있습니다. 내가AsyncTask 이후 번들의 NullPointerExecption
bundle.putString("RESPONSE", result);
나는 여기서 결과가 그렇게 onPostExecute 메서드에 전달 된 것을 알고 선에 nullpointerexecption을 얻을 때 내가 번들에게 AsyncTask를의 결과를 시도 할 때까지
package com.ilocal.diary;
import java.util.ArrayList;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
public class ViewDiary extends Activity {
private String userid = "1";
private String response;
private String url;
private Bundle bundle = new Bundle();
private ArrayList<NameValuePair> postParameters;
private ProgressDialog dialog = null;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.empty_layout);
this.dialog = ProgressDialog.show(this, "Working..", "Downloading Data...", true, false);
bundle = this.getIntent().getExtras();
if (bundle != null) {
userid = bundle.getString("USERID");
}
url ="http://www.ilocaltest.x10.mx/android/fetchdiary.php";
postParameters = new ArrayList<NameValuePair>();
postParameters.add(new BasicNameValuePair("userid", userid));
new PHPQuery().execute(url, postParameters);
}
private class PHPQuery extends AsyncTask<Object, Void, String > {
protected String doInBackground(Object... params) {
try {
response = CustomHttpClient.executeHttpPost(url, postParameters);
} catch (Exception e) {
System.out.println("HTTP error - " + e.toString());
}
System.out.println(response);
return response;
}
protected void onPostExecute(String result) {
dialog.dismiss();
System.out.println(result);
if (!(result == null)) {
bundle.putString("RESPONSE", result);
Intent i = new Intent(ViewDiary.this, DisplayDiary.class);
i.putExtras(bundle);
startActivity(i);
ViewDiary.this.finish();
}
else
finish();
}
}
}
모든 노력 예외는 어떻게 고칠 수 있는가?
마틴
) {'그냥 당신이 그것을 알아야한다고 생각하고,'bundle' 또는'result' 중 하나가 null이되어야합니다. 결과가 null 인 경우에만 거기에 도착하기 때문에 결과를 추측합니다. – Austin
여기에 디버그 로그를 넣고 실행되는지 확인할 수 있습니까? 번들 = this.getIntent(). getExtras(); if (번들! = null) { userid = bundle.getString ("USERID"); Log.d ("PHP", "Found extras"); } –
@Christopher 추가 된 내용과 추가 내용이 있습니다. 이미 실제 번들이 없다는 것을 이미 알고 있었기 때문에 번들을 보내고 새로운 번들을 만드는 것을 제거한 새로운 활동이 inorder를 만들었고 작동합니다. null 인 번들이어야합니다. 그러나 그것이 왜 달라져야 하는가? 번들이 생성 된 이전 활동에서는이 활동과 동일한 문자열이 입력 될 때까지 비어있게됩니다. – martincm