Как использовать переменную GridView из класса onCreateView в другой класс во фрагменте?

У меня есть фрагмент, и я инициализировал переменную 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, но не нашел подсказки для своей проблемы.

0
0
53
1

Ответы 1

Определите вид сетки из 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. Спасибо.

Mr. X 23.10.2018 11:05

Другие вопросы по теме