构造函数 ArrayAdapter<ArrayList<HashMap<String, String>>(Context, int, ArrayList<HashMap<String, String>>) 未定义 [英] The constructor ArrayAdapter&lt;ArrayList&lt;HashMap&lt;String, String&gt;&gt;&gt;(Context, int, ArrayList&lt;HashMap&lt;String, String&gt;&gt;) is undefined

查看:47
本文介绍了构造函数 ArrayAdapter<ArrayList<HashMap<String, String>>(Context, int, ArrayList<HashMap<String, String>>) 未定义的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我对 Android 完全陌生.

I am totally new to Android.

这个问题可能是一个基本问题.

This question might be a basic one.

但是我为此苦苦挣扎了四天.请帮我.

But I'm struggling for four days with this. Please Help me.

我正在制作水平列表视图,以提供博客中多个类别的内容.

I'm making horizontal listview for providing the contents of several categories from blog.

(与Pulse news app类似的界面)

(similar interface with Pulse news app)

我得到了水平列表视图的开源,我正在修改它.

I got the open source of the horizontal listview and I'm modifying it.

这段代码是CustomArrayAdapter.java.

但是当我尝试编写 super();在构造函数内部,它会产生这样的错误:

But when I try to write super(); inside the constructor, it makes an error like this :

The constructor ArrayAdapter<ArrayList<HashMap<String, String>>>(Context, int, ArrayList<HashMap<String, String>>) is undefined

Eclipse 建议如下:

And eclipse suggests like this :

Remove argument to match 'ArrayAdapter<ArrayList<HashMap<String, String>>>(Context, int)'

我不知道这个 (Context, int) 参数从何而来.

I don't know where this (Context, int) argument came from.

请检查下面的 CustomArrayAdapter.java 有什么问题:

Please check what is wrong in CustomArrayAdapter.java below :

package com.xxxx.xxxxxxxxx;

import java.util.ArrayList;
import java.util.HashMap;

import android.content.Context;
import android.graphics.Color;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;

/** An array adapter that knows how to render views when given CustomData classes */
public class CustomArrayAdapter extends ArrayAdapter<ArrayList<HashMap<String, String>>> {
    private Context context;
    private ArrayList<HashMap<String, String>> data;
    private int viewId;

    private LayoutInflater mInflater;

    public CustomArrayAdapter(Context c, int textViewResourceId, ArrayList<HashMap<String, String>> d) {
        super(c, textViewResourceId, d);

        this.context = c;
        this.viewId = textViewResourceId;
        this.data = d; 
    }

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

    /*
     * We are overriding the getView method here - this is what defines how each
     * list item will look.
     */
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {         
        // Assign the view we are converting to a local variable
        View vi = convertView;
        Holder holder;      

        if (convertView == null) {

            // Inflate the view since it does not exist
            if (vi == null) {
                mInflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                vi = mInflater.inflate(R.layout.custom_data_view, null);
            }

            /*
             * Recall that the variable position is sent in as an argument to this method.
             * The variable simply refers to the position of the current object in the list. (The ArrayAdapter
             * iterates through the list we sent it)
             * 
             * Therefore, i refers to the current Item object.
             */

            // This is how you obtain a reference to the TextViews.
            // These TextViews are created in the XML files we defined.

            // Create and save off the holder in the tag so we get quick access to inner fields
            // This must be done for performance reasons

            holder = new Holder();
            holder.textView = (TextView) vi.findViewById(R.id.title_view);
            holder.imageView = (ImageView) vi.findViewById(R.id.thumbnail_view);

            vi.setTag(holder);                                  

        } else {
            holder = (Holder) vi.getTag();
        }

        // check to see if each individual textview is null.
        // if not, assign some text!
        // Populate the text 

        HashMap<String, String> currentData = new HashMap<String, String>();
        currentData = data.get(position);

        if (currentData != null) {
            holder.textView.setText(currentData.get(MainActivity.KEY_TITLE));
            holder.imageLoader = new ImageLoader(context.getApplicationContext());    
            holder.imageLoader.DisplayImage(currentData.get(MainActivity.KEY_THUMBNAIL), holder.imageView);
        }       

        // Set the color
        vi.setBackgroundColor(Color.DKGRAY);
        return vi;
    }

    /** View holder for the views we need access to */
    private static class Holder {
        public TextView textView;
        public ImageView imageView;
        public ImageLoader imageLoader;
    }
}

推荐答案

应该是:

public class CustomArrayAdapter extends ArrayAdapter<HashMap<String, String>>

这篇关于构造函数 ArrayAdapter<ArrayList<HashMap<String, String>>(Context, int, ArrayList<HashMap<String, String>>) 未定义的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆