title: Use base adapter with asynctask to display listview
body: <p>i am reading data from soap service and want to display them in a list.
  to do this, I have created a base adapter. And trying to use that in asynctask. But that is giving some error that i dont have a solution. as per the error i think there is some problem in the postExecute in the asynctask, but don't have idea how to solve it.
  some help will be really great.</p>
  
  <p>here is some of the codes.</p>
  
  <h2>the class</h2>
  
  <pre><code>public class PatientBasicInfo {
  private String FirstName;
  private String LastName;
  private String Id;
  private String Gender;
  private String DateOfBirth;
  
  public PatientBasicInfo(String firstname,String lastname,String id){
      this.FirstName=firstname;
      this.LastName=lastname;
      this.Id=id;
  }
  
  public String getFirstName(){
      return this.FirstName;
  }
  public void setFirstName(String firstname){
      this.FirstName=firstname;
  }
  
  public String getLastName(){
      return this.LastName;
  }
  public void setLastName(String lastname){
      this.LastName=lastname;
  }
  public String getPatientId(){
      return this.Id;
  }
  public void setPatientId(String Id){
      this.Id=Id;
  }
  public String getGender(){
      return this.Gender;
  }
  public void setGender(String gender){
      this.Gender=gender;
  }
  public String getDateOfBirth(){
      return this.DateOfBirth;
  }
  public void setDateOfBirth(String dob){
      this.DateOfBirth=dob;
  }
  
  @Override
  public String toString(){
      return FirstName+" "+LastName;
  }
  
  }
  </code></pre>
  
  <h2>The base adapter</h2>
  
  <pre><code>public class PatientListBaseAdapter extends BaseAdapter{
  
  private static ArrayList&lt;PatientBasicInfo&gt; patientArrayList;
  
  private LayoutInflater mInflater;
  private Context context;
  
  public PatientListBaseAdapter(Context ctx,ArrayList&lt;PatientBasicInfo&gt; result) {
      // TODO Auto-generated constructor stub
      patientArrayList=result;
      mInflater = LayoutInflater.from(context);
      this.context=ctx;
  }
  
  public int getCount() {
      // TODO Auto-generated method stub
      return patientArrayList.size();
  }
  
  public Object getItem(int position) {
      // TODO Auto-generated method stub
      return patientArrayList.get(position);
  }
  
  public long getItemId(int position) {
      // TODO Auto-generated method stub
      return position;
  }
  
  public View getView(int position, View convertView, ViewGroup parent) {
      // TODO Auto-generated method stub
      ViewHolder holder;
      final String patientId=patientArrayList.get(position).getPatientId();
      final String patientFirstName=patientArrayList.get(position).getFirstName();
      final String patientLastName=patientArrayList.get(position).getLastName();
      mInflater = (LayoutInflater)
              context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
      if (convertView == null) {
             convertView = mInflater.inflate(R.layout.custom_rowview, null);
             holder = new ViewHolder();
             holder.txtFirstName = (TextView) convertView.findViewById(R.id.patientfirstname);
             holder.txtLastName = (TextView) convertView.findViewById(R.id.patientlastname);
             holder.txtID=(TextView)convertView.findViewById(R.id.patientid);
  
             convertView.setTag(holder);
            } else {
                holder = (ViewHolder) convertView.getTag();
            }
  
      holder.txtFirstName.setText(patientFirstName);
      holder.txtLastName.setText(patientLastName);
  
      holder.txtID.setText(patientId);
      return convertView;
  }
  private class ViewHolder {
        TextView txtFirstName;      
        TextView txtID;
        TextView txtLastName; 
  
       }}
  </code></pre>
  
  <h2>the activity</h2>
  
  <pre><code>public class PatientListActivity extends Activity{
  
  private static final String SOAP_ACTION = "";
  private static final String NAMESPACE = "";
  private static final String METHOD_NAME = "getPatientList";
  private static final String URL = "";
  
  
  TextView tv;
  @Override
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.custom_listview);
      Intent intent = getIntent();
  
      String nurseId  = intent.getStringExtra("nurseid");
  
      new CallgetPatientList().execute(nurseId);
  }
  
  class CallgetPatientList extends AsyncTask&lt;String,Void,ArrayList&lt;PatientBasicInfo&gt;&gt;{
  
      @Override
      protected ArrayList&lt;PatientBasicInfo&gt; doInBackground(String... params) {
          // TODO Auto-generated method stub
          Log.d("param", params[0].toString());
          SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); 
  
          Credetials cred=new Credetials("username","password");
          PropertyInfo credPropertyinfo=new PropertyInfo();
          credPropertyinfo.setName("credetials");
          credPropertyinfo.setValue(cred);
          credPropertyinfo.setType(cred.getClass());
  
          request.addProperty(credPropertyinfo);
          request.addProperty("nurseId", params[0].toString());
  
          SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
          envelope.setOutputSoapObject(request);
          HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
  
       try{
  
              androidHttpTransport.call(SOAP_ACTION, envelope);
  
  
              SoapObject response = (SoapObject) envelope.bodyIn;
  
              ArrayList&lt;PatientBasicInfo&gt; patientList=new ArrayList&lt;PatientBasicInfo&gt;();
  
              for(int i= 0; i&lt; response.getPropertyCount(); i++){
                  SoapObject object = (SoapObject)response.getProperty(i);
                  String firstname=object.getProperty("firstName").toString();
                  String lastname=object.getProperty("lastName").toString();
  
                  String id=object.getProperty("id").toString();
  
                 PatientBasicInfo aa=new PatientBasicInfo(firstname,lastname,id);                
                 patientList.add(aa);
              }
  
              Log.d("patientCount", Integer.toString(patientList.size()));
              return patientList;
  
  
          }catch(Exception e){
              //return e.getMessage();
              return null;
          }
  
      }
      @Override
      protected void onPostExecute(ArrayList&lt;PatientBasicInfo&gt; result){
          //super.onPostExecute(result);
          Log.d("resultcount", Integer.toString(result.size()));
          final ListView lv = (ListView) findViewById(R.id.ListView01);
          PatientListBaseAdapter adapter=new PatientListBaseAdapter(getApplicationContext(),result);
          lv.setAdapter(adapter);
      }
  
  }
  
  
  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
      // Inflate the menu; this adds items to the action bar if it is present.
      getMenuInflater().inflate(R.menu.activity_patient_list, menu);
      //return true;
  
  
      return true;
  
  }
  }
  </code></pre>
  
  <h2>the error</h2>
  
  <p><img src="https://i.stack.imgur.com/4EGQ1.png" alt="enter image description here"></p>