我對Android完全陌生。構造函數ArrayAdapter <ArrayList <HashMap <String,String >>>(Context,int,ArrayList <HashMap <String,String >>)未定義
這個問題可能是一個基本的問題。
但我正在爲此掙扎四天。請幫幫我。
我正在做橫向列表視圖提供從博客幾個類別的內容。
(類似於接口脈衝新聞應用程式)
我水平的ListView開源,我修改它。
此代碼是CustomArrayAdapter.java
。
但是當我試圖寫super()
;在構造函數中,它使這樣的錯誤:
The constructor ArrayAdapter<ArrayList<HashMap<String, String>>>(Context, int, ArrayList<HashMap<String, String>>) is undefined
和Eclipse建議是這樣的:
Remove argument to match 'ArrayAdapter<ArrayList<HashMap<String, String>>>(Context, int)'
我不知道這個(上下文,INT)的說法是從哪裏來的。
請檢查什麼是錯在下面CustomArrayAdapter.java
:
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;
}
}
http://developer.android.com/reference/android/widget/ArrayAdapter.html。檢查arrayadapter的公共構造函數。你在哪裏調用你的自定義適配器? – Raghunandan
@Raghunandan感謝您的評論。其實我已經檢查過那個頁面,但是當時我找不到什麼錯誤。幸運的是,問題解決了。 – sodacan