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