Android 将数据加载到listvcoiew时出错

Android 将数据加载到listvcoiew时出错,android,listview,Android,Listview,我正在尝试使用自定义BaseAdapter类从远程服务器将数据加载到listview。除数据未显示在listview上外,一切正常。在日志cat上未生成任何错误。 代码如下: 活动类别: public class MyAccountActivity extends Activity{ public static final String URL="http://***.co.ke/ussd/get_shares.php"; private ProgressDialog progressDialo

我正在尝试使用自定义BaseAdapter类从远程服务器将数据加载到listview。除数据未显示在listview上外,一切正常。在日志cat上未生成任何错误。 代码如下:

活动类别:

public class MyAccountActivity extends Activity{
public static final String URL="http://***.co.ke/ussd/get_shares.php";
private ProgressDialog progressDialog;
 private static final String TAG_NUMBER = "share_number";
  private static final String TAG_NAME = "share_name";

ArrayList shareList;

public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_my_account);  

    ArrayList sharelist = update_shares();
    final ListView lv1 = (ListView) findViewById(R.id.mylist);
    lv1.setAdapter(new CustomShareListAdapter(this, sharelist));
    //ListView listview = getListView();

}

String data="";
public ArrayList update_shares(){
    InputStream is=null;
    String result="";
    String key="admin";
    ArrayList results=new ArrayList();

    ArrayList<NameValuePair>user_details=new ArrayList<NameValuePair>();
    user_details.add(new BasicNameValuePair("user",key));

    try{
        HttpClient httpClient=new DefaultHttpClient();
        HttpPost httpPost=new HttpPost(URL);
        httpPost.setEntity(new UrlEncodedFormEntity(user_details));
        HttpResponse response=httpClient.execute(httpPost);
        HttpEntity entity=response.getEntity();
        is=entity.getContent();
    }
    catch(Exception e){
        Log.e("log tag","Error in connection"+e.toString());
    }

    try{
        BufferedReader reader=new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
        StringBuilder sb=new StringBuilder();
        String line=null;

        while((line=reader.readLine()) != null){
             sb.append(line + "\n");
        }
        is.close();
        result=sb.toString();
    }
    catch(Exception e){
        Log.e("log_tag", "Error converting result "+e.toString());
    }



    try{
        JSONArray jArray=new JSONArray();
        for(int i=0;i<jArray.length();i++){
            JSONObject json_data = jArray.getJSONObject(i);
            String share=json_data.getString(TAG_NAME);
            String number=json_data.getString(TAG_NUMBER);

              ShareList myshares=new ShareList();
              myshares.set_share_name(share);
              myshares.set_share_number(number);
              results.add(myshares); 
        }
        Toast.makeText(getApplicationContext(), "Parsed ok",Toast.LENGTH_SHORT).show();
    }
    catch(Exception e){
         Log.e("log_tag", "Error parsing data "+e.toString());
    }
    return results;
}
 }
这是shareList类

public class ShareList {
private String share_name;
private String share_number;

public String get_share_name(){
    return share_name;
}
public void set_share_name(String share_name){
    this.share_name=share_name;
}

public String get_share_number(){
    return share_number;
}
public void set_share_number(String share_number){
    this.share_number=share_number;
}



public String to_string(){
    return "[name="+share_name+",number="+share_number+"]";
}

 }
非常感谢您的帮助。谢谢

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONArray;
import org.json.JSONObject;


import android.app.Activity;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.util.Log;
import android.widget.ListView;
import android.widget.Toast;

public class MyAccountActivity extends Activity{
public static final String URL="http://***.co.ke/ussd/get_shares.php";
private ProgressDialog progressDialog;
 private static final String TAG_NUMBER = "share_number";
  private static final String TAG_NAME = "share_name";
ArrayList<ShareList> shareList=new ArrayList<ShareList>();

public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_my_account);  

    shareList = update_shares();
    final ListView lv1 = (ListView) findViewById(R.id.mylist);
    lv1.setAdapter(new CustomShareListAdapter(this, sharelist));
    //ListView listview = getListView();

}

String data="";
public ArrayList<ShareList> update_shares(){
    InputStream is=null;
    String result="";
    String key="admin";

    ArrayList<NameValuePair>user_details=new ArrayList<NameValuePair>();
    user_details.add(new BasicNameValuePair("user",key));

    try{
        HttpClient httpClient=new DefaultHttpClient();
        HttpPost httpPost=new HttpPost(URL);
        httpPost.setEntity(new UrlEncodedFormEntity(user_details));
        HttpResponse response=httpClient.execute(httpPost);
        HttpEntity entity=response.getEntity();
        is=entity.getContent();
    }
    catch(Exception e){
        Log.e("log tag","Error in connection"+e.toString());
    }

    try{
        BufferedReader reader=new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
        StringBuilder sb=new StringBuilder();
        String line=null;

        while((line=reader.readLine()) != null){
             sb.append(line + "\n");
        }
        is.close();
        result=sb.toString();
    }
    catch(Exception e){
        Log.e("log_tag", "Error converting result "+e.toString());
    }



    try{
        JSONArray jArray=new JSONArray();
        for(int i=0;i<jArray.length();i++){
            JSONObject json_data = jArray.getJSONObject(i);
            String share=json_data.getString(TAG_NAME);
            String number=json_data.getString(TAG_NUMBER);
            shareList.add(new ShareList(share, number));
        }
        Toast.makeText(getApplicationContext(), "Parsed ok",Toast.LENGTH_SHORT).show();
    }
    catch(Exception e){
         Log.e("log_tag", "Error parsing data "+e.toString());
    }
    return shareList;
}

}

如上所述更改您的共享列表,它可以正常工作

我忘了在MyAccountActivity活动的try部分分析结果

JSONArray jArray=new JSONArray();
应该是

JSONArray jarray=new JSONArray(result);

将您的共享列表放入类处理方式错误,请给我指示,请您输入代码,但有什么错误?您应该使用asynctask进行与网络相关的操作
HttpResponse response=httpClient.execute(httpPost)
。您是否获得NetWorkOnMainThreadException?打印收到的字符串并检查是否有任何内容到达
JSONArray jArray=new JSONArray();
JSONArray jarray=new JSONArray(result);