Я хочу создать вид сетки кнопок во фрагменте. Я запутался, что передать в качестве параметра setAdapter в моем коде, так как это требует контекста для функции setAdapter, как я пытался это сделать, getActivity, getContext.но безрезультатно.Код, на который я ссылался, был для Activity, а не для фрагмента, поэтому они передали getActivity.
public class ExploreHabitFragment extends Fragment {
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_exloprehabit, container, false);
GridView gridView = view.findViewById(R.id.mygridview);
gridView.setAdapter(new ImageAdapter());
return view;
}
}
class ImageAdapter extends BaseAdapter {
private Context mContext;
// Keep all Images in array
private Integer[] mThumbIds = {
R.drawable.bitingnail , R.drawable.diet ,
R.drawable.gym , R.drawable.jogging ,
R.drawable.meditate , R.drawable.smoking ,
R.drawable.study , R.drawable.water ,
};
// Constructor
ImageAdapter(Context c){
mContext = c;
}
@Override
public int getCount() {
return mThumbIds.length;
}
@Override
public Object getItem(int position) {
return mThumbIds[position];
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView = new ImageView(mContext);
imageView.setImageResource(mThumbIds[position]);
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setLayoutParams(new GridView.LayoutParams(70, 70));
return imageView;
}
}
При передаче getActivity выдает ошибку времени выполнения и приложение останавливается.«это» не работает.