首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在android ListView中填充json

在android ListView中填充json
EN

Stack Overflow用户
提问于 2014-03-13 14:13:12
回答 4查看 305关注 0票数 0

我的json输出:

代码语言:javascript
复制
[{"FirstName":"childname2"},{"FirstName":"childname4"}]

我尝试用json数据填充我的listview,我使用post方法得到了这些数据,通过这样做,当我试图通过使用for循环在列表中传递这个值时,我在postexecute.And中得到了json的总输出--它没有显示任何错误,也没有填充我的列表、建议、建议,

我的java:

代码语言:javascript
复制
private ListView lv=(ListView) findViewById(R.id.listView1);
    @Override
    protected void onPostExecute(String result) {
    // TODO Auto-generated method stub
    super.onPostExecute(result);
    Toast.makeText(Certify_Child_Count.this,result, Toast.LENGTH_LONG).show();
    if (result.equals("[]")) 
    {
        Toast.makeText(Certify_Child_Count.this,
                "Wrong Username or Password", Toast.LENGTH_LONG).show();

    }
    else 
    {
        Toast.makeText(Certify_Child_Count.this,result, Toast.LENGTH_LONG).show();
        JSONArray arr=new JSONArray();
        JSONObject obj = null;
        //ArrayAdapter<String> adapter=new ArrayAdapter<String>(Certify_Child_Count.this, android.R.layout.simple_list_item_1, list);
        //lv.setAdapter(adapter);
        for(int i=0;i<arr.length();i++)
        {
            Toast.makeText(Certify_Child_Count.this,"going into for loop", Toast.LENGTH_LONG).show();

        try {
            obj=arr.getJSONObject(i);
        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        try { 
            list.add(obj.getString("FirstName"));
            Toast.makeText(Certify_Child_Count.this,obj.getString("FirstName"), Toast.LENGTH_LONG).show();
        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }


        }

    }
    }
EN

回答 4

Stack Overflow用户

发布于 2014-03-13 14:49:16

您需要使用Adapter来填充ListView。

您需要创建一个类来实现ArraryAdapters<>,例如:

代码语言:javascript
复制
public class ListAdapters extends ArraryAdapters<string>

该类实现了一个getView()方法。这里,您需要填充一个listview。

代码语言:javascript
复制
@Override
public View getView(int position, View convertView, ViewGroup parent) {
    ViewHolder holder;
    if (convertView == null) {

        LayoutInflater inflater = context.getLayoutInflater();

        convertView = inflater.inflate(R.layout.list_rows, null);

        holder = new ViewHolder();

        holder.tectview = (TextView) convertView
                .findViewById(R.id.questionary_name);
        convertView.setTag(holder);
    }
    holder = (ViewHolder) convertView.getTag();


    String s = items[position];

    holder.tectview.setText(s);
    return convertView;
}
票数 1
EN

Stack Overflow用户

发布于 2014-03-13 14:29:43

你的适配器在哪里?您需要一个适配器来显示列表中的数据。如果是单个文本,则可以使用基本适配器,并在每次完成请求和解析数据时通知它。

票数 0
EN

Stack Overflow用户

发布于 2014-03-13 14:47:33

你应该换衣服

代码语言:javascript
复制
JSONArray arr=new JSONArray();

转到

代码语言:javascript
复制
JSONArray arr=new JSONArray(result);

您正在创建一个空的JSONArray,而不添加结果。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22381273

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档