Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json解析后无法在android的listview中打印数据_Android - Fatal编程技术网

Json解析后无法在android的listview中打印数据

Json解析后无法在android的listview中打印数据,android,Android,我已经创建了一个适配器,它是从基本适配器扩展而来的,可以正常工作吗?请告诉我如何在Json解析后绑定值并在列表视图中显示。请建议我尝试实现。在getView()中绑定值自定义适配器的方法。使用自定义适配器将JSON数据绑定到Listview,如下所示: public class RowItem { public RowItem(String title, String desc) { this.title = title; this.desc = de

我已经创建了一个适配器,它是从基本适配器扩展而来的,可以正常工作吗?请告诉我如何在Json解析后绑定值并在列表视图中显示。请建议我尝试实现。

getView()中绑定值
自定义适配器的方法。

使用
自定义适配器
JSON数据绑定到Listview,如下所示:

public class RowItem {

    public RowItem(String title, String desc) {

        this.title = title;
        this.desc = desc;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getDesc() {
        return desc;
    }

    public void setDesc(String desc) {
        this.desc = desc;
    }

    private String title;
    private String desc;
}
公共类ListViewAdapterForLead扩展BaseAdapter{
语境;
充气机;
阵列列表数据;
TextView-txtText;
public ListViewAdapterForLead(上下文上下文,ArrayList ArrayList){
this.context=上下文;
数据=数组列表;
}
@凌驾
public int getCount(){
返回data.size();
}
@凌驾
公共对象getItem(int索引){
返回数据。获取(索引);
}
@凌驾
公共长getItemId(int位置){
返回位置;
}
公共视图getView(最终整数位置、视图转换视图、视图组父视图){
if(convertView==null){
LayoutInflater mInflater=(LayoutInflater)
context.getSystemService(Activity.LAYOUT\u INFLATER\u SERVICE);
convertView=mInflater.充气(R.layout.row_lead,空);
}
txtText=(TextView)convertView.findViewById(R.id.textLeadMenu);
setText(data.get(position.getTitle());
返回视图;
}
公共视图getDropDownView(int位置、视图转换视图、视图组父视图){
if(convertView==null){
LayoutInflater mInflater=(LayoutInflater)
context.getSystemService(Activity.LAYOUT\u INFLATER\u SERVICE);
convertView=mInflater.充气(R.layout.row_lead,空);
}
txtText=(TextView)convertView.findViewById(R.id.textLeadMenu);
setText(data.get(position.getTitle());
返回视图;
}
}

您应该在后台任务完成后设置数据。

*首先尝试在onPostExecute()方法中设置列表适配器。
*确保填写模型中的所有详细信息。
*在适配器类中使用getView()方法解析数据。

有关带BaseAdapter的ListView的示例代码,请参阅下面的链接

您忘记了一件事,这就是列表为空的原因

将解析后的数据添加到列表中

public class ListViewAdapterForLead extends BaseAdapter {
   Context context;
   LayoutInflater inflater;
   ArrayList<SpinnerNavItem> data;
   TextView txtText;


   public ListViewAdapterForLead(Context context,ArrayList<SpinnerNavItem> arraylist) {
       this.context = context;
       data = arraylist;

   }

   @Override
   public int getCount() {
       return data.size();
   }

   @Override
   public Object getItem(int index) {
       return data.get(index);
   }

   @Override
   public long getItemId(int position) {
       return position;
   }

   public View getView(final int position, View convertView, ViewGroup parent) {
       if (convertView == null) {
        LayoutInflater mInflater = (LayoutInflater)
                context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
        convertView = mInflater.inflate(R.layout.row_lead, null);
    }


    txtText = (TextView) convertView.findViewById(R.id.textLeadMenu);



    txtText.setText(data.get(position).getTitle());
    return convertView;




   }



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

       if (convertView == null) {
            LayoutInflater mInflater = (LayoutInflater)
                    context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
            convertView = mInflater.inflate(R.layout.row_lead, null);
        }


        txtText = (TextView) convertView.findViewById(R.id.textLeadMenu);


        txtText.setText(data.get(position).getTitle());


    return convertView;

    }
 }
//在此处初始化您的列表
rowItems=新列表();

对于(int i=0;i它不是json它的xml dearUse instead我能够获取数据我在LisView中绑定时遇到问题这也在工作但我无法在Preexcute Methodi中向数据添加数据模型我在ListView中打印数据时遇到问题我在RowItem中绑定数据时遇到问题在AsyncTask类ArrayList mArrayList=new ArrayList中全局添加它t();然后尝试在doBackground方法内部添加RowItem rItem=new RowItem(EmployeeName,Designation);mArrayList.add(rItem);我在@Gulnaz Ghanchi中所做的操作我在doninbackground和onPost中遇到问题这里是我的自定义视图编写您的
System.out.println(Id+“”+designment+“”+EmployeeName)
在您的post中执行一行。
public class ListViewAdapterForLead extends BaseAdapter {
   Context context;
   LayoutInflater inflater;
   ArrayList<SpinnerNavItem> data;
   TextView txtText;


   public ListViewAdapterForLead(Context context,ArrayList<SpinnerNavItem> arraylist) {
       this.context = context;
       data = arraylist;

   }

   @Override
   public int getCount() {
       return data.size();
   }

   @Override
   public Object getItem(int index) {
       return data.get(index);
   }

   @Override
   public long getItemId(int position) {
       return position;
   }

   public View getView(final int position, View convertView, ViewGroup parent) {
       if (convertView == null) {
        LayoutInflater mInflater = (LayoutInflater)
                context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
        convertView = mInflater.inflate(R.layout.row_lead, null);
    }


    txtText = (TextView) convertView.findViewById(R.id.textLeadMenu);



    txtText.setText(data.get(position).getTitle());
    return convertView;




   }



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

       if (convertView == null) {
            LayoutInflater mInflater = (LayoutInflater)
                    context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
            convertView = mInflater.inflate(R.layout.row_lead, null);
        }


        txtText = (TextView) convertView.findViewById(R.id.textLeadMenu);


        txtText.setText(data.get(position).getTitle());


    return convertView;

    }
 }
 //initialize your list here
 rowItems = new List<RowItems>();

     for (int i = 0; i <= _jarray.length(); i++) {

                         JSONObject _obj = _jarray.getJSONObject(i);
                            RowItemsr = new RowItems();
                        Id = _obj.getString("Id");
                        Designation = _obj.getString("Designation");
                        EmployeeName = _obj.getString("EmployeeName");
                        System.out.println(Id + "" + Designation + ""
                                + EmployeeName);
                       // you must create an object and add it to your list
                         r.setTitle(EmployeeName);
                         r.setDesc(Designation);
                        rowItems.add(r);
                    }