Android 数组适配器构造函数

Android 数组适配器构造函数,android,android-arrayadapter,Android,Android Arrayadapter,我需要使我的适配器显示图像,因此我创建了一个整数数组,并在其中放入一个图像id,但当我将其发送给数组适配器构造函数时,它会给我一个错误,因为类型为整数。我怎样才能解决这个问题 错误出现在这里super(上下文、资源、对象) 我的GridViewAdapter类: package com.example.hima.moviesapp; import android.app.Activity; import android.content.Context; import android.view.L

我需要使我的
适配器
显示图像,因此我创建了一个整数数组,并在其中放入一个图像id,但当我将其发送给数组适配器构造函数时,它会给我一个错误,因为类型为
整数
。我怎样才能解决这个问题

错误出现在这里super(上下文、资源、对象)

我的GridViewAdapter类

package com.example.hima.moviesapp;
import android.app.Activity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import java.util.ArrayList;


/**
* Created by Hima on 3/23/2016.
 */
public class GridViewAdapter extends ArrayAdapter<String> {
   private Context mContext;
   private int layoutResourceId;
   private ArrayList<Integer > mGridImages = new ArrayList<Integer>();
 public GridViewAdapter(Context context, int resource, ArrayList<Integer> objects) {
     //the error apear here!!
     super(context,resource, objects);
     this.mContext=context;
     this.layoutResourceId=resource;
     this.mGridImages=objects;
 }

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    View row = convertView;
    ImageView image;
    if(row == null){
        LayoutInflater inflater = ((Activity) mContext).getLayoutInflater();
        row = inflater.inflate(layoutResourceId, parent, false);
        image= (ImageView)row.findViewById(R.id.movieImage);
        row.setTag(image);
    }
    else{
        image = (ImageView)row.getTag();
    }
    int temp = mGridImages.get(position);
    image.setImageResource(temp);
    return row;
}
}
package com.example.hima.moviesapp;

import android.support.v4.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.GridView;

import java.util.ArrayList;

/**
 * A placeholder fragment containing a simple view.
 */
  public class GridViewFragment extends Fragment {
  int[] DummyImages = {R.drawable.first,R.drawable.second,R.drawable.third,R.drawable.fourth,
                    R.drawable.fifth,R.drawable.sixth};
public GridViewFragment() {
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {

  View rootView = inflater.inflate(R.layout.fragment_main, container, false);
    ArrayList<Integer>DummyPosters= new ArrayList<>();
    for(int i=0;i<DummyImages.length;i++) {
        DummyPosters.add(DummyImages[i]);
    }
    GridView gridView = (GridView) rootView.findViewById(R.id.gridView);
    gridView.setAdapter(new GridViewAdapter(getActivity(),R.id.movieImage,DummyPosters));

    return rootView;
}
}
package com.example.hima.moviesapp;
导入android.app.Activity;
导入android.content.Context;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.ArrayAdapter;
导入android.widget.ImageView;
导入java.util.ArrayList;
/**
*Hima于2016年3月23日创建。
*/
公共类GridViewAdapter扩展了ArrayAdapter{
私有上下文;
私人内部布局资源;
private ArrayList mGridImages=new ArrayList();
公共GridViewAdapter(上下文、int资源、ArrayList对象){
//错误就在这里!!
超级(上下文、资源、对象);
this.mContext=上下文;
this.layoutResourceId=资源;
this.mGridImages=对象;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
视图行=转换视图;
图像视图图像;
if(行==null){
LayoutFlater充气器=((活动)mContext.getLayoutFlater();
行=充气机。充气(layoutResourceId,父级,false);
image=(ImageView)row.findviewbyd(R.id.movieImage);
row.setTag(图像);
}
否则{
image=(ImageView)row.getTag();
}
int temp=mGridImages.get(位置);
image.setImageResource(temp);
返回行;
}
}
MyMainFragment类

package com.example.hima.moviesapp;
import android.app.Activity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import java.util.ArrayList;


/**
* Created by Hima on 3/23/2016.
 */
public class GridViewAdapter extends ArrayAdapter<String> {
   private Context mContext;
   private int layoutResourceId;
   private ArrayList<Integer > mGridImages = new ArrayList<Integer>();
 public GridViewAdapter(Context context, int resource, ArrayList<Integer> objects) {
     //the error apear here!!
     super(context,resource, objects);
     this.mContext=context;
     this.layoutResourceId=resource;
     this.mGridImages=objects;
 }

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    View row = convertView;
    ImageView image;
    if(row == null){
        LayoutInflater inflater = ((Activity) mContext).getLayoutInflater();
        row = inflater.inflate(layoutResourceId, parent, false);
        image= (ImageView)row.findViewById(R.id.movieImage);
        row.setTag(image);
    }
    else{
        image = (ImageView)row.getTag();
    }
    int temp = mGridImages.get(position);
    image.setImageResource(temp);
    return row;
}
}
package com.example.hima.moviesapp;

import android.support.v4.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.GridView;

import java.util.ArrayList;

/**
 * A placeholder fragment containing a simple view.
 */
  public class GridViewFragment extends Fragment {
  int[] DummyImages = {R.drawable.first,R.drawable.second,R.drawable.third,R.drawable.fourth,
                    R.drawable.fifth,R.drawable.sixth};
public GridViewFragment() {
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {

  View rootView = inflater.inflate(R.layout.fragment_main, container, false);
    ArrayList<Integer>DummyPosters= new ArrayList<>();
    for(int i=0;i<DummyImages.length;i++) {
        DummyPosters.add(DummyImages[i]);
    }
    GridView gridView = (GridView) rootView.findViewById(R.id.gridView);
    gridView.setAdapter(new GridViewAdapter(getActivity(),R.id.movieImage,DummyPosters));

    return rootView;
}
}
package com.example.hima.moviesapp;
导入android.support.v4.app.Fragment;
导入android.os.Bundle;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.GridView;
导入java.util.ArrayList;
/**
*包含简单视图的占位符片段。
*/
公共类GridViewFragment扩展了片段{
int[]DummyImages={R.drawable.first,R.drawable.second,R.drawable.third,R.drawable.fourth,
R.drawable.fifth,R.drawable.sixth};
公共GridViewFragment(){
}
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
视图根视图=充气机。充气(R.layout.fragment_main,容器,错误);
ArrayListDummyPosters=新的ArrayList();

对于(inti=0;i您的适配器需要字符串数组,这就是它崩溃的原因。 之所以这样做是因为您在适配器中以泛型类型传递字符串

公共类GridViewAdapter扩展了ArrayAdapter


要修复此问题,请将适配器更改为扩展
ArrayAdapter

您的适配器需要字符串数组,这就是它崩溃的原因。 之所以这样做是因为您在适配器中以泛型类型传递字符串

公共类GridViewAdapter扩展了ArrayAdapter

要修复此问题,请将适配器更改为扩展
阵列适配器

尝试更改

public class GridViewAdapter extends ArrayAdapter<String> {
公共类GridViewAdapter扩展了ArrayAdapter{

公共类GridViewAdapter扩展了ArrayAdapter{
尝试更改

public class GridViewAdapter extends ArrayAdapter<String> {
公共类GridViewAdapter扩展了ArrayAdapter{

公共类GridViewAdapter扩展了ArrayAdapter{
将ArrayAdapter的类型更改为ArrayAdapter将ArrayAdapter的类型更改为ArrayAdapter