为什么这一行:
g.setAdapter(new ImageAdapter(this));
给我错误“Constructor Undefined”?
我使用本指南制作标签http://www.androidbegin.com/tutorial/implementing-fragment-tabs-in-android/,现在我正在尝试在其中一个标签上实现网格视图,但ImageAdapter存在问题。如果我将鼠标移到错误上并根据它所说的内容更改代码,那么它只会开始更改“上下文”内容并产生更多错误。
以下是代码:
package com.example.tabexample;
import android.app.Fragment;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
public class FragmentTab2 extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment2, container, false);
GridView g = (GridView) rootView.findViewById(R.id.grid_view);
g.setAdapter(new ImageAdapter(this));
return rootView;
}
public class ImageAdapter extends BaseAdapter{
private Context context;
public Integer[] Skins = {R.drawable.s1, R.drawable.s2, R.drawable.s3,
R.drawable.s4, R.drawable.s5, R.drawable.s6,
R.drawable.s7, R.drawable.s8, R.drawable.s9,
R.drawable.s10, R.drawable.s11, R.drawable.s12};
public ImageAdapter(Context c) {
// TODO Auto-generated constructor stub
context = c;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return 0;
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
ImageView pic = new ImageView(context);
pic.setLayoutParams(new GridView.LayoutParams(200,200));
pic.setScaleType(ImageView.ScaleType.FIT_CENTER);
pic.setPadding(8, 8, 8, 8);
pic.setImageResource(Skins[position]);
return pic;
}
}
}
答案 0 :(得分:4)
用
替换该行g.setAdapter(new ImageAdapter(getActivity()));
Fragment
不会继承Context
。