Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.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
Android Baseadapter中未设置文本_Android_Json_Baseadapter - Fatal编程技术网

Android Baseadapter中未设置文本

Android Baseadapter中未设置文本,android,json,baseadapter,Android,Json,Baseadapter,我下面的示例实现了endlesscrollListView,当我运行我的应用程序时,应用程序崩溃并出现以下错误,如有任何帮助,将不胜感激,谢谢 这是我的适配器类 public class EndlessAdapter extends BaseAdapter { //private List<String> itemList; private Context ctx; private int layoutId; private ArrayList&

我下面的示例实现了
endlesscrollListView
,当我运行我的应用程序时,应用程序崩溃并出现以下错误,如有任何帮助,将不胜感激,谢谢

这是我的适配器类

public class EndlessAdapter extends BaseAdapter {

    //private List<String> itemList;
    private Context ctx;
    private int layoutId;


    private ArrayList<HashMap<String, String>> listData;
    //private AQuery aQuery;
    String rup = "\u20B9";
    //private ArrayList<String> usersizesArrayList;

    private static final String TAG_NAME = "name";
    private static final String TAG_IMAGE = "img_url";
    private static final String TAG_PRICE = "price";
    private static final String TAG_ID_PRODUCT = "id_product";
    /*public EndlessAdapter(Context ctx, List<String> itemList, int layoutId) {
        super(ctx, layoutId, itemList);
        this.itemList = itemList;
        this.ctx = ctx;
        this.layoutId = layoutId;
    }*/

    public EndlessAdapter(Context ctx, ArrayList<HashMap<String, String>> listData) {
        this.ctx = ctx;
        this.listData = listData;
        //aQuery = new AQuery(this.context);
    }

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

    @Override
    public Object getItem(int position) {
        return listData.get(position);
    }

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

    /*@Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View result = convertView;

        if (result == null) {
            LayoutInflater inflater = (LayoutInflater) ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            result = inflater.inflate(layoutId, parent, false);
        }

        // We should use class holder pattern
        TextView tv = (TextView) result.findViewById(R.id.txt1);
        //tv.setText(itemList.get(position));
        */

    @Override
    public View getView(final int position, View convertView, ViewGroup parent) {
         final ViewHolder holder;
        if (convertView == null) {
            holder = new ViewHolder();

            convertView = LayoutInflater.from(ctx).inflate(R.layout.row_layout, null);
            holder.txtproname = (TextView) convertView.findViewById(R.id.txt1);

        } else {
            holder = (ViewHolder) convertView.getTag();
        }

        holder.txtproname.setText(listData.get(position).get(TAG_NAME));
        return convertView;

    }
    class ViewHolder {
        public EditText qunatityss;
        public TextView bordrsfourth;
        public TextView bordrsthird;
        public TextView bordrssecond;
        public TextView bordrs;
        public RadioButton productsizesmall;
        public RadioButton productsizemed;
        public RadioButton productsizelarge;
        public RadioButton productsizexlarge;
        public TextView fourthcolor;
        public TextView thirdcolor;
        public TextView secondcolor;
        public ImageView cartview;
        TextView txtprice;
        ImageView propic;
        TextView txtproname;
        TextView firstcolor;
        Button addtocart;
    }
109号线是

holder.txtproname.setText(listData.get(position).get(TAG_NAME));

有人能帮忙吗???

您需要在
if
条件下使用
setTag()

if (convertView == null) {
        holder = new ViewHolder();

        convertView = LayoutInflater.from(ctx).inflate(R.layout.row_layout, null);
        holder.txtproname = (TextView) convertView.findViewById(R.id.txt1);

        convertView.setTag(holder);

    } 

您不需要将holder对象声明为final

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

    ViewHolder holder;

    if (convertView == null) {

        convertView = LayoutInflater.from(ctx).inflate(R.layout.row_layout, null);

        holder = new ViewHolder();

        holder.txtproname = (TextView) convertView.findViewById(R.id.txt1);

        convertView.setTag(holder);

    } 

    else {

        holder = (ViewHolder) convertView.getTag();

    }

}
public View getView(int position, View convertView, ViewGroup parent) {

    ViewHolder holder;

    if (convertView == null) {

        convertView = LayoutInflater.from(ctx).inflate(R.layout.row_layout, null);

        holder = new ViewHolder();

        holder.txtproname = (TextView) convertView.findViewById(R.id.txt1);

        convertView.setTag(holder);

    } 

    else {

        holder = (ViewHolder) convertView.getTag();

    }

}