我正在使用Android Studio中的“生成已签名APK”来生成apk文件,但是出现了以下错误:
错误:错误:此类应提供默认构造函数(一个没有参数的公共构造函数)(com.actua.actuaconsultores.actuamindfulness.GridImagenAdaptar)[可实例化]
我的类如下:
public class GridImagenAdaptar extends BaseAdapter {
private final Context mContext;
private final ArrayList<ModelImage> mGridItems;
public GridImagenAdaptar(Context mContext, ArrayList<ModelImage> mGridItems) {
this.mContext = mContext;
this.mGridItems = mGridItems;
}
public int getCount() {
return mGridItems.size();
}
public Object getItem(int position) {
return mGridItems.get(position);
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent)
{
if( convertView == null)
{ // If ReusedView doesn't exist
convertView = inflatedViewWithContextInParentView(R.layout.activity_grid_imagen_adaptar, mContext, parent);
convertView.setTag("HomeMenuCell"); // Reuse Identifier
}
fillViewWithItemAtIndex(convertView, position);
return convertView;
}
private View inflatedViewWithContextInParentView(int id, Context context, ViewGroup parentView)
{
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Service.LAYOUT_INFLATER_SERVICE);
View inflatedView = inflater.inflate(id, parentView, false);
return inflatedView;
}
private void fillViewWithItemAtIndex(View reusedView, int index)
{
ModelImage item = mGridItems.get(index);
item.setId(index);
TextView title = (TextView) reusedView.findViewById(R.id.title);
title.setText(item.title);
ImageView picture = (ImageView) reusedView.findViewById(R.id.image);
int resourceID = getIDForResourceName(item.imageName);
picture.setImageResource(resourceID);
}
private int getIDForResourceName(String name)
{
try {
Class res = R.drawable.class;
Field field = res.getField(name);
int drawableId = field.getInt(null);
return drawableId;
}
catch (Exception e) {
Log.e("GridItemsAdapter", "Error: Couldn't get a drawable id.", e);
}
return -1;
}
}
什么是问题?
谢谢
AndroidManifest.xml
文件中无意间引用了这个类? - CommonsWaregetIDForResourceName
的作用是什么,但你不需要使用反射来完成它。 - OneCricketeer