Java 在edittext中显示时获取nullpointerexception
在Android中,当我解析json数据时,我得到了对象,可以在logcat中看到。但是当我转换为JSONArray,然后转换为getString()时,它会给出NULLPOINTEREXCEPTION。 我想在我的edittext中显示此json请帮助 谁能帮我一下吗 这是我的json结果表单phpJava 在edittext中显示时获取nullpointerexception,java,android,json,parsing,nullpointerexception,Java,Android,Json,Parsing,Nullpointerexception,在Android中,当我解析json数据时,我得到了对象,可以在logcat中看到。但是当我转换为JSONArray,然后转换为getString()时,它会给出NULLPOINTEREXCEPTION。 我想在我的edittext中显示此json请帮助 谁能帮我一下吗 这是我的json结果表单php {"result":[{"uid":"1","name":"vipul","phone":"9772950005","sap":"500023675"}],"success":1} 注意:我得到
{"result":[{"uid":"1","name":"vipul","phone":"9772950005","sap":"500023675"}],"success":1}
注意:我得到的是json,问题在于如何获得并显示该元素
这是我的json,可以在logcat中看到
10-19 02:13:51.082: W/Trace(1267): Unexpected value from nativeGetEnabledTags: 0
10-19 02:13:51.152: D/This is json error(1267): {"success":1,"result":[{"uid":"1","sap":"500023675","phone":"9772950005","name":"vipul"}]}
我的java代码是:
public class search_view extends Activity{
private ProgressDialog pDialog;
JSONObject result;
private static final String KEY_SUCCESS = "success";
private static final String KEY_NAME = "name";
private static final String KEY_PHONE = "phone";
private static final String TAG_RESULT = "result";
private static final String TAG_UID = "uid";
private static final String TAG_SAP = "sap";
public String sap="500023675";
EditText txtName,txtsap,txtPhone,txtuid;
JSONParser jsonParser = new JSONParser();
private static final String KEY_SEARCH_URL = "http://10.0.2.2:8080/android/search.php";
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.list_item);
txtsap = (EditText) findViewById(R.id.sap);
txtsap.setText("This is onCreate");
new searchall().execute();
}
class searchall extends AsyncTask<String, String, JSONObject>{
JSONObject json;
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(search_view.this);
pDialog.setMessage("Searching... be patient..");
pDialog.setIndeterminate(false);
pDialog.setCancelable(true);
pDialog.show();
}
@Override
protected void onPostExecute(JSONObject result) {
JSONArray resu;
String id = "hello this is null";
// TODO Auto-generated method stub
//super.onPostExecute(result);
try {
resu=result.getJSONArray(TAG_RESULT);
} catch (JSONException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
resu = null;
}
for( int i = 0;i <= resu.length(); i++){try {
id = resu.getString(i);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}}
txtuid =(EditText)findViewById(R.id.uid);
txtName = (EditText)findViewById(R.id.name);
txtPhone = (EditText) findViewById(R.id.phone);
txtsap = (EditText) findViewById(R.id.sap);
txtuid.setText(id);
txtName.setText(id);
txtPhone.setText("phone");
txtsap.setText("this is yes");
pDialog.dismiss();
}
@Override
protected JSONObject doInBackground(String... arg0) {
// TODO Auto-generated method stub
int success;
List<NameValuePair> lis = new ArrayList<NameValuePair>();
lis.add(new BasicNameValuePair("sap", sap));
JSONObject json = jsonParser.makeHttpRequest(KEY_SEARCH_URL, "GET", lis);
Log.d("This is json error", json.toString());
try {
success = json.getInt(KEY_SUCCESS);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
JSONObject res = null;
try {
res = json.getJSONObject(TAG_RESULT);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//obj = (JSONObject) res.get(j);
return res;
}
}
}
谢谢
请帮助……
for(int i=0;i@lealand)我尝试替换第73行上的内容,然后?我们只能猜测而不知道引发空指针异常的行上的内容。此外,如果resu.getString(i)
返回null
,则所有(R.id.*)
行将失败。只需首先检查以确保id!=null
。@lealand这是在第73行resu=result.getJSONArray(TAG\u result);那么这意味着result
为空。我看到您还有一个实例变量result
。您打算处理哪一个?因为现在,它是在onPostExecute(JSONObject result)
中传递的变量。对实例变量进行阴影处理不是一个好主意。
10-19 02:13:54.232: E/AndroidRuntime(1267): FATAL EXCEPTION: main
10-19 02:13:54.232: E/AndroidRuntime(1267): java.lang.NullPointerException
10-19 02:13:54.232: E/AndroidRuntime(1267): at com.god.upesgetall.search_view$searchall.onPostExecute(search_view.java:73)
10-19 02:13:54.232: E/AndroidRuntime(1267): at com.god.upesgetall.search_view$searchall.onPostExecute(search_view.java:1)
10-19 02:13:54.232: E/AndroidRuntime(1267): at android.os.AsyncTask.finish(AsyncTask.java:631)
10-19 02:13:54.232: E/AndroidRuntime(1267): at android.os.AsyncTask.access$600(AsyncTask.java:177)
10-19 02:13:54.232: E/AndroidRuntime(1267): at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:644)
10-19 02:13:54.232: E/AndroidRuntime(1267): at android.os.Handler.dispatchMessage(Handler.java:99)
10-19 02:13:54.232: E/AndroidRuntime(1267): at android.os.Looper.loop(Looper.java:137)
10-19 02:13:54.232: E/AndroidRuntime(1267): at android.app.ActivityThread.main(ActivityThread.java:5039)
10-19 02:13:54.232: E/AndroidRuntime(1267): at java.lang.reflect.Method.invokeNative(Native Method)
10-19 02:13:54.232: E/AndroidRuntime(1267): at java.lang.reflect.Method.invoke(Method.java:511)
10-19 02:13:54.232: E/AndroidRuntime(1267): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
10-19 02:13:54.232: E/AndroidRuntime(1267): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
10-19 02:13:54.232: E/AndroidRuntime(1267): at dalvik.system.NativeStart.main(Native Method)