Получить количество дочерних элементов в виде сетки после настройки адаптера

#android

#Android

Вопрос:

У меня есть следующий код:

 public static class PlaceholderFragment extends Fragment {

    static final String[] transacciones = new String[] {
        "Retiro", "Depósito", "Pago", "Administrativas"
    };

    public PlaceholderFragment() {
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.fragment_opciones, container, false);
        GridView gridViewOpciones = (GridView) rootView.findViewById(R.id.gridViewOpciones);

        ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, 
                transacciones);
        gridViewOpciones.setAdapter(adapter);

        for (int i=0; i<gridViewOpciones.getChildCount(); i  ) {
            // Get view and then add a click listener
        }
        return rootView;
    }

}
  

Я хочу получить каждый вид внутри сетки и установить прослушиватель щелчков для каждого из них.

После отладки я замечаю, что мой метод getChildCount возвращает 0, несмотря на то, что моя активность правильно отображает вид сетки (со всеми четырьмя параметрами).

Почему метод getChildCount не возвращает 4, как я ожидал?

Ответ №1:

Если вы хотите установить OnClickListener для каждого элемента в вашем gridview, используйте этот код

 gridViewOpciones.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int position,
                long arg3) {

            String str= (String) gridViewOpciones.getItemAtPosition(position);
            // do whatever you need with string

        }


    });