У меня есть фрагмент, и я инициализировал переменную GridView: mgridView внутри onCreateView, но я не могу использовать его в другом классе, поскольку он дает ошибку - не может разрешить переменную mgridView. У меня была аналогичная проблема с переменной mContext в коде, но я исправил ее, выполнив частный контекст mContext = null; & mContextmContext = this.getActivity (); * внутри onCreateView, но не знаю, что делать с mgridView.
Код-
public class DubsFragment extends Fragment {
private static final String TAG = "Dubs Fragment";
private Context mContext = null;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_mydubs, container, false);
GridView mgridView = view.findViewById(R.id.gridView);
mContext = this.getActivity();
tempGridsetup();
return view;
}
private void tempGridsetup() {
ArrayList<String> imgURLs = new ArrayList<>();
imgURLs.add("https://jerrybanfield.com/wp-content/uploads/2017/04/ufo-title.jpg");
imgURLs.add("https://i.ytimg.com/vi/fb7T1v_VHpE/maxresdefault.jpg");
imgURLs.add("https://cbsnews3.cbsistatic.com/hub/i/r/2010/11/10/a5cb16e6-a642-11e2-a3f0-029118418759/thumbnail/1200x630/f599cb2f266baaae27ae8b608b45e70d/UFO.jpg");
setupImageGrid(imgURLs);
}
private void setupImageGrid(ArrayList<String> imgURLs){
GridImageAdapter adapter = new GridImageAdapter(mContext, R.layout.layout_grid_imageview, "", imgURLs);
mgridView.setAdapter(adapter);
}
}
Это может быть основной вопрос, но я искал похожие проблемы в stackoverflow, но не нашел подсказки для своей проблемы.
Определите вид сетки из onCreate.
private static final String TAG = "Dubs Fragment";
private Context mContext = null;
public GridView mgridView;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_mydubs, container, false);
mgridView = view.findViewById(R.id.gridView);
mContext = this.getActivity();
tempGridsetup();
return view;
}
А, чувак ... Я делал то же самое, только что снова инициализировал mgridView в oncreate. Спасибо.