android kvmserializable自定义数组,java - 尝试在空对象引用上调用接口方法'int org.ksoap2.serialization.KvmSerializable.get...

我有一个学校项目。 它是由以前的开发人员构建的。 我正在尝试运行它。 但是我正在收到NullPointerException。 这是我的代码:

private boolean isNetworkAvailable()

{

ConnectivityManager connectivityManager=(ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);

NetworkInfo activeNetworkInfo=connectivityManager.getActiveNetworkInfo();

return activeNetworkInfo !=null && activeNetworkInfo.isConnected();

}

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_registration);

setToolbar();

new AsyncTask(){

@Override

protected void onPreExecute() {

super.onPreExecute();

dialog=new ProgressDialog(RegistrationActivity.this);

dialog.setMessage("Loading...");

dialog.show();

}

@Override

protected Void doInBackground(Void... params) {

SoapObject request = new SoapObject(WSDL_TARGET_NAMESPACE1,OPERATION_NAME1);

SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);

envelope.dotNet = true;

envelope.setOutputSoapObject(request);

HttpTransportSE httpTransport = new HttpTransportSE(SOAP_ADDRESS1);

httpTransport.debug=true;

try {

httpTransport.call(SOAP_ACTION1, envelope);

} catch (IOException e) {

e.printStackTrace();

} catch (XmlPullParserException e) {

e.printStackTrace();

}

try {

response= envelope.getResponse();

Log.e("response: ", response.toString() + "");

} catch (SoapFault soapFault) {

soapFault.printStackTrace();

Log.e("response: ", response.toString() + "");

}

return null;

}

@Override

protected void onPostExecute(Void aVoid) {

super.onPostExecute(aVoid);

dialog.dismiss();

try {

Log.e("response: ", response.toString() + "");

}catch(Exception e){

e.printStackTrace();

Toast.makeText(RegistrationActivity.this,response.toString()+"",Toast.LENGTH_LONG).show();

}

StringTokenizer tokens = new StringTokenizer(response.toString(), "=");

List mylist=new ArrayList();

for(int i=0;tokens.hasMoreTokens();i++){

StringTokenizer tokens1 = new StringTokenizer(tokens.nextToken(), ";");

mylist.add(tokens1.nextToken());

}

mylist.remove(0);

int partitionSize =1;

List> partitions = new LinkedList>();

for (int i = 0; i < mylist.size(); i += partitionSize) {

partitions.add(mylist.subList(i,

i + Math.min(partitionSize, mylist.size() - i)));

}

city=new ArrayList();

for(int k=0;k

city.add(partitions.get(k).get(0));

}

callGetArea();

}

}.execute();

spcity= (Spinner) findViewById(R.id.spcity);

spcity.setOnItemSelectedListener(this);

sparea = (Spinner) findViewById(R.id.sparea);

sparea.setOnItemSelectedListener(this);

dateFormatter = new SimpleDateFormat("dd-MM-yyyy", Locale.US);

rg = (RadioGroup) findViewById(R.id.gendergroup);

name= (EditText) findViewById(R.id.fname);

address=(EditText)findViewById(R.id.address);

contact= (EditText) findViewById(R.id.contact);

email= (EditText) findViewById(R.id.email);

weight= (EditText) findViewById(R.id.weight);

password= (EditText) findViewById(R.id.password);

cpass= (EditText) findViewById(R.id.cpassword);

earea= (Spinner) findViewById(R.id.sparea);

ecity= (Spinner) findViewById(R.id.spcity);

btnContinue= (TextView)findViewById(R.id.btncont);

bdate = (EditText) findViewById(R.id.bdate);

bdate.setInputType(InputType.TYPE_NULL);

bdate.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

setDateTimeField();

fromDatePickerDialog.show();

}

});

btnContinue.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

if (isEmptyField(name)) {

Toast.makeText(RegistrationActivity.this, "Please Enter Name", Toast.LENGTH_LONG).show();

} else if (isEmptyField(bdate)) {

Toast.makeText(RegistrationActivity.this, "Please Select Birthdate", Toast.LENGTH_LONG).show();

} else if (isEmptyField(address)) {

Toast.makeText(RegistrationActivity.this, "Please Enter Address", Toast.LENGTH_LONG).show();

} else if (isEmptyField(weight)) {

Toast.makeText(RegistrationActivity.this, "Please Enter Weight", Toast.LENGTH_LONG).show();

} else if (isEmptyField(contact)) {

Toast.makeText(RegistrationActivity.this, "Please Enter Contact", Toast.LENGTH_LONG).show();

} else if (isEmptyField(email)) {

Toast.makeText(RegistrationActivity.this, "Please Enter E-Mail", Toast.LENGTH_LONG).show();

}else if (!isEmailPattern(email)) {

Toast.makeText(RegistrationActivity.this, "Please Enter Valid E-Mail", Toast.LENGTH_LONG).show();

}else if (isEmptyField(password)) {

Toast.makeText(RegistrationActivity.this, "Please Enter Password", Toast.LENGTH_LONG).show();

} else if (isEmptyField(cpass)) {

Toast.makeText(RegistrationActivity.this, "Please Confirm Password", Toast.LENGTH_LONG).show();

} else if (!isPasswordMatch(cpass,password)) {

Toast.makeText(RegistrationActivity.this, "Password doesn't match", Toast.LENGTH_LONG).show();

}

else {

if(isNetworkAvailable()) {

new AsyncTask() {

@Override

protected void onPreExecute() {

super.onPreExecute();

dialog = new ProgressDialog(RegistrationActivity.this);

dialog.setMessage("Loading...");

dialog.show();

}

@Override

protected Void doInBackground(Void... params) {

resp = loginCall(email.getText().toString().trim());

return null;

}

@Override

protected void onPostExecute(Void aVoid) {

super.onPostExecute(aVoid);

Log.e("Response", resp + "");

dialog.dismiss();

if (resp == 1) {

UserClass userClass = new UserClass();

userClass.name = name.getText().toString();

userClass.dob = bdate.getText().toString();

int selectedId = rg.getCheckedRadioButtonId();

RadioButton radioButton = (RadioButton) findViewById(selectedId);

userClass.gender = radioButton.getText().toString();

userClass.address = address.getText().toString();

userClass.city = city.get(ecity.getSelectedItemPosition());

userClass.area = area.get(earea.getSelectedItemPosition()).city;

userClass.weight = weight.getText().toString();

userClass.contact = contact.getText().toString();

userClass.email = email.getText().toString();

userClass.password = password.getText().toString();

Log.e("name", userClass.name + "");

Log.e("dob", userClass.dob + "");

Log.e("gender", userClass.gender + "");

Log.e("address", userClass.address + "");

Log.e("city", userClass.city + "");

Log.e("area", userClass.area + "");

Log.e("weight", userClass.weight + "");

Log.e("contact", userClass.contact + "");

Log.e("email", userClass.email + "");

Log.e("password", userClass.password + "");

PrefUtils.setCurrentUser(userClass, RegistrationActivity.this);

Intent intent = new Intent(RegistrationActivity.this, RegistrationActivity2.class);

startActivity(intent);

finish();

} else {

Toast.makeText(getApplicationContext(), "Email Already Exist", Toast.LENGTH_LONG).show();

}

}

}.execute();

}

else

{

Toast.makeText(RegistrationActivity.this, "Check Your Internet Connection", Toast.LENGTH_LONG).show();

}

}

}

});

}

public void onDateSet(DatePicker view, int year, int month, int day) {

Calendar userAge = new GregorianCalendar(year,month,day);

Calendar minAdultAge = new GregorianCalendar();

minAdultAge.add(Calendar.YEAR, -18);

if (minAdultAge.before(userAge))

{

Toast.makeText(RegistrationActivity.this,"Please enter valid date",Toast.LENGTH_LONG).show();

}

}

private void callGetArea() {

new AsyncTask(){

@Override

protected void onPreExecute() {

super.onPreExecute();

dialog=new ProgressDialog(RegistrationActivity.this);

dialog.setMessage("Loading...");

dialog.show();

}

@Override

protected Void doInBackground(Void... params) {

SoapObject request = new SoapObject(WSDL_TARGET_NAMESPACE2,OPERATION_NAME2);

SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);

envelope.dotNet = true;

envelope.setOutputSoapObject(request);

HttpTransportSE httpTransport = new HttpTransportSE(SOAP_ADDRESS2);

httpTransport.debug=true;

try {

httpTransport.call(SOAP_ACTION2, envelope);

} catch (IOException e) {

e.printStackTrace();

} catch (XmlPullParserException e) {

e.printStackTrace();

}

try {

response= envelope.getResponse();

Log.e("response: ", response.toString() + "");

} catch (SoapFault soapFault) {

soapFault.printStackTrace();

Log.e("response: ", response.toString() + "");

}

return null;

}

@Override

protected void onPostExecute(Void aVoid) {

super.onPostExecute(aVoid);

dialog.dismiss();

try {

Log.e("response: ", response.toString() + "");

}catch(Exception e){

e.printStackTrace();

Toast.makeText(RegistrationActivity.this,response.toString()+"",Toast.LENGTH_LONG).show();

}

StringTokenizer tokens = new StringTokenizer(response.toString(), "=");

List mylist=new ArrayList();

for(int i=0;tokens.hasMoreTokens();i++){

StringTokenizer tokens1 = new StringTokenizer(tokens.nextToken(), ";");

mylist.add(tokens1.nextToken());

}

mylist.remove(0);

final int partitionSize =2;

List> partitions = new LinkedList>();

for (int i = 0; i < mylist.size(); i += partitionSize) {

partitions.add(mylist.subList(i,

i + Math.min(partitionSize, mylist.size() - i)));

}

area=new ArrayList();

for(int k=0;k

area.add(new Area(partitions.get(k).get(0),partitions.get(k).get(1)));

}

TimeSpinnerAdapter1 tspcity=new TimeSpinnerAdapter1(RegistrationActivity.this,city);

spcity.setAdapter(tspcity);

spcity.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

@Override

public void onItemSelected(AdapterView> parent, View view, int position, long id) {

ArrayList tempList=new ArrayList();

for(int i=0;i

Log.e("city............",area.get(i).area+"");

if(area.get(i).area.equalsIgnoreCase(city.get(position))){

tempList.add(area.get(i));

}

}

TimeSpinnerAdapter tsparea = new TimeSpinnerAdapter(RegistrationActivity.this, tempList);

sparea.setAdapter(tsparea);

}

@Override

public void onNothingSelected(AdapterView> parent) {

}

});

}

}.execute();

}

private void setDateTimeField() {

Calendar newCalendar = Calendar.getInstance();

fromDatePickerDialog = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {

public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {

Calendar userAge = new GregorianCalendar(year,monthOfYear,dayOfMonth);

Calendar minAdultAge = new GregorianCalendar();

minAdultAge.add(Calendar.YEAR, -18);

if (minAdultAge.before(userAge))

{

Toast.makeText(RegistrationActivity.this,"Please Enter Valid Date",Toast.LENGTH_LONG).show();

} else {

bdate.setText(dateFormatter.format(userAge.getTime()));

}

}

},newCalendar.get(Calendar.YEAR), newCalendar.get(Calendar.MONTH), newCalendar.get(Calendar.DAY_OF_MONTH));

}

public boolean isEmptyField(EditText param1) {

boolean isEmpty = false;

if (param1.getText() == null || param1.getText().toString().equalsIgnoreCase("")) {

isEmpty = true;

}

return isEmpty;

}

private void setToolbar() {

toolbar = (Toolbar) findViewById(R.id.toolbar);

if (toolbar != null) {

toolbar.setTitle("Register");

setSupportActionBar(toolbar);

}

}

@Override

public void onBackPressed() {

super.onBackPressed();

finish();

}

@Override

public void onItemSelected(AdapterView> parent, View view, int position, long id) {

}

@Override

public void onNothingSelected(AdapterView> parent) {

}

public class TimeSpinnerAdapter extends BaseAdapter implements SpinnerAdapter {

private final Context activity;

private ArrayList asr;

public TimeSpinnerAdapter(Context context,ArrayList asr) {

this.asr=asr;

activity = context;

}

public int getCount()

{

return asr.size();

}

public Object getItem(int i)

{

return asr.get(i);

}

public long getItemId(int i)

{

return (long)i;

}

@Override

public View getDropDownView(int position, View convertView, ViewGroup parent) {

TextView txt = new TextView(RegistrationActivity.this);

txt.setPadding(16,16,16,16);

txt.setTextSize(16);

txt.setGravity(Gravity.CENTER_VERTICAL);

txt.setText(asr.get(position).city);

txt.setTextColor(Color.parseColor("#494949"));

return txt;

}

public View getView(int i, View view, ViewGroup viewgroup) {

TextView txt = new TextView(RegistrationActivity.this);

txt.setGravity(Gravity.CENTER_VERTICAL);

txt.setPadding(16,16,16,16);

txt.setTextSize(16);

txt.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_spinner, 0);

txt.setText(asr.get(i).city);

txt.setTextColor(Color.parseColor("#ffffff"));

return txt;

}

}

public static boolean isEmailPattern(EditText param1) {

Pattern pattern = Patterns.EMAIL_ADDRESS;

return pattern.matcher(param1.getText().toString()).matches();

}

public static boolean isPasswordMatch(EditText param1, EditText param2) {

boolean isMatch = false;

if (param1.getText().toString().equals(param2.getText().toString())) {

isMatch = true;

}

return isMatch;

}

public class TimeSpinnerAdapter1 extends BaseAdapter implements SpinnerAdapter {

private final Context activity;

private ArrayList asr;

public TimeSpinnerAdapter1(Context context,ArrayList asr) {

this.asr=asr;

activity = context;

}

public int getCount()

{

return asr.size();

}

public Object getItem(int i)

{

return asr.get(i);

}

public long getItemId(int i)

{

return (long)i;

}

@Override

public View getDropDownView(int position, View convertView, ViewGroup parent) {

TextView txt = new TextView(RegistrationActivity.this);

txt.setPadding(16,16,16,16);

txt.setTextSize(16);

txt.setGravity(Gravity.CENTER_VERTICAL);

txt.setText(asr.get(position));

txt.setTextColor(Color.parseColor("#494949"));

return txt;

}

public View getView(int i, View view, ViewGroup viewgroup) {

TextView txt = new TextView(RegistrationActivity.this);

txt.setGravity(Gravity.CENTER_VERTICAL);

txt.setPadding(16,16,16,16);

txt.setTextSize(16);

txt.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_spinner, 0);

txt.setText(asr.get(i));

txt.setTextColor(Color.parseColor("#ffffff"));

return txt;

}

}

public int loginCall(String c1)

{

SoapObject request = new SoapObject(WSDL_TARGET_NAMESPACE,OPERATION_NAME);

PropertyInfo p1=new PropertyInfo();

p1.setName("email");

p1.setValue(c1);

p1.setType(String.class);

request.addProperty(p1);

SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(

SoapEnvelope.VER11);

envelope.dotNet = true;

envelope.setOutputSoapObject(request);

HttpTransportSE httpTransport = new HttpTransportSE(SOAP_ADDRESS);

Object response=null;

try

{

httpTransport.debug=true;

httpTransport.call(SOAP_ACTION, envelope);

response = envelope.getResponse();

}

catch (Exception ex)

{

// ex.printStackTrace();

Toast.makeText(getApplicationContext(),"error",Toast.LENGTH_LONG).show();

//displayExceptionMessage(ex.getMessage());

//System.out.println(exception.getMessage());

}

return Integer.parseInt(response.toString());

}

我在response = wallet.getResponse();上收到NullPointerException

我的错误如下:

Process: com.nkdroid.blooddonation, PID: 16820

java.lang.RuntimeException: An error occurred while executing doInBackground()

at android.os.AsyncTask$3.done(AsyncTask.java:309)

at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354)

at java.util.concurrent.FutureTask.setException(FutureTask.java:223)

at java.util.concurrent.FutureTask.run(FutureTask.java:242)

at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)

at java.lang.Thread.run(Thread.java:818)

Caused by: java.lang.NullPointerException: Attempt to invoke interface method 'int org.ksoap2.serialization.KvmSerializable.getPropertyCount()' on a null object reference

at org.ksoap2.serialization.SoapSerializationEnvelope.getResponse(SoapSerializationEnvelope.java:513)

at com.nkdroid.blooddonation.RegistrationActivity$1.doInBackground(RegistrationActivity.java:146)

at com.nkdroid.blooddonation.RegistrationActivity$1.doInBackground(RegistrationActivity.java:120)

at android.os.AsyncTask$2.call(AsyncTask.java:295)

有人可以帮我吗? 我知道代码是一团糟。 但任何帮助将不胜感激。 谢谢! :)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值