как создать gridview кнопок в фрагменте? - PullRequest
0 голосов
/ 06 апреля 2019

Я хочу создать вид сетки кнопок во фрагменте. Я запутался, что передать в качестве параметра 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 выдает ошибку времени выполнения и приложение останавливается.«это» не работает.

...