我有一個問題,我想從一個Serializable類設置和獲取Arraylists,但是當我們想要將Arraylist設置爲相同類時,它返回NullPointerException,我不'不知道爲什麼?請建議我爲正確的結果。空指針異常當想設置Serializable類中的值
錯誤堆棧:
09-28 11:30:20.422: ERROR/AndroidRuntime(511): java.lang.NullPointerException
09-28 11:30:20.422: ERROR/AndroidRuntime(511): at com.example.test.Test_serializableActivity.parse_json(Test_serializableActivity.java:88)
09-28 11:30:20.422: ERROR/AndroidRuntime(511): at com.example.test.Test_serializableActivity$2.run(Test_serializableActivity.java:55)
代碼:插入值類
package com.example.test;
import java.util.ArrayList;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.json.JSONArray;
import org.json.JSONObject;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.widget.Toast;
public class Test_serializableActivity extends Activity {
/** Called when the activity is first created. */
public ArrayList<String> ibx_id = new ArrayList<String>();
public ArrayList<String> ibx_name = new ArrayList<String>();
public ArrayList<String> ibx_naturalKey = new ArrayList<String>();
setIbx ibx;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
HttpPost post = new HttpPost("http://qa.mobile.equinix.com/eqixmobile/siteservice/um/ibx");
try{
StringEntity se = new StringEntity("{\"credentials\":{\"username\":\"mobileuser1\",\"password\":\"welcome1\"}}");
final Service_Call obj = new Service_Call(post, se, "mobileuser1", "welcome1",false);
final ProgressDialog dialog = ProgressDialog.show(Test_serializableActivity.this, " EQUINIX ", "Loading.... ", true);
final Handler handler = new Handler() {
public void handleMessage(Message msg) {
Intent intent = new Intent(Test_serializableActivity.this,GetIbx.class);
startActivity(intent);
dialog.dismiss();
}
};
final Thread checkUpdate = new Thread() {
public void run() {
ibx_name.clear();
ibx_name.add("Select");
String json_string = obj.call_Service();
// new Parse_Json(json_string).parse();
parse_json(json_string);
handler.sendEmptyMessage(0);
}
};
checkUpdate.start();
}catch(Exception e)
{
e.printStackTrace();
}
}
public void parse_json(String json_string)
{
try{
JSONObject ja = new JSONObject(json_string);
JSONArray jo = ja.getJSONArray("ibx");
for(int i=0;i<jo.length();i++)
{
JSONObject j_data = jo.getJSONObject(i);
System.out.println("The id is:"+j_data.getString("id"));
ibx_id.add(j_data.getString("id"));
System.out.println("The Name is:"+j_data.getString("name"));
ibx_name.add(j_data.getString("name"));
System.out.println("The naturalKey is:"+j_data.getString("naturalKey"));
ibx_naturalKey.add(j_data.getString("naturalKey"));
}
}catch(Exception e)
{
e.printStackTrace();
}
ibx.setId(ibx_id);--------------->**NPE presents**
ibx.setName(ibx_name);
ibx.setNaturalKey(ibx_naturalKey);
}
}
獲得的價值類:
package com.example.test;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
public class GetIbx extends Activity{
ArrayAdapter<String> statusAdapter;
Spinner sp_ibx;
List<String> ibx_list = new ArrayList<String>();
setIbx ibx;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.newmain);
ibx_list = ibx.getName();
sp_ibx = (Spinner)findViewById(R.id.spinner1);
statusAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, ibx_list);//Sets an status adapter
statusAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
sp_ibx.setAdapter(statusAdapter);
}
}
編輯:的getter/setter分類 -
package com.example.test;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
public abstract class setIbx implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
public List<String> id = new ArrayList<String>();
public List<String> name = new ArrayList<String>();
public List<String> naturalKey = new ArrayList<String>();
public void setId(ArrayList<String> id)
{
this.id = id;
}
public List<String> getId()
{
return id;
}
public void setName(ArrayList<String> name)
{
this.name = name;
}
public List<String> getName()
{
return name;
}
public void setNaturalKey(ArrayList<String> naturalKey)
{
this.naturalKey = naturalKey;
}
public List<String> getNaturalKey()
{
return naturalKey;
}
}
您是否在清單文件中添加了Internet權限? –