выполнить необходимые проверки там.

отаю над проектом, где у меня есть, скажем, 5x5 сетка TextViews, и я хочу проверить, есть ли у всей строки или столбца одинаковые элементы. Я использую класс Adapter, чтобы наполнить мой gridview просто одним элементом textview. Вот код, который я пробовал, но я не могу заставить его работать:

 final int size = gridView.getCount(); //25
 int temp = 0;

    for (int i = 0; i < size; i++) {
        ViewGroup gridChild = (ViewGroup) gridView.getChildAt(i);
        childSize = gridChild.getChildCount();

        for (int j = 0; j < childSize; j++) {

            if (gridChild.getChildAt(j) instanceof TextView &&
                    ((TextView) gridChild.getChildAt(j)).getText().toString().equals("x")) {
                temp++;
            }

Дело в том, что когда я пытался отладить, отладчик показывал нулевые значения для переменной childSize и не мог правильно получить значение из getChildAt. По сути, я пытаюсь попасть внутрь оператора if. Также это первый раз, когда я работаю с ViewGroup Calss и методами, которые я вызываю. Любая помощь будет оценена.

Редактировать: я ищу способ сделать это вне метода getView в классе адаптера, а не в методе onClick. (Примеры ответов кода будут высоко оценены). Кроме того, вызов метода getChildAt возвращает значение null, поэтому показанный мною код не будет работать, поскольку я присваиваю значение null для gridChild.

Это onClick, который я использую для TextViews:

`

 public void numberFill(View view) {
        if (((TextView) view).getText().toString().isEmpty()) {
            ((TextView) view).setText(String.valueOf(numbCounter + 1));
            numbCounter++;
        }

        else if (!((TextView) view).getText().toString().isEmpty() && numbCounter >= 16) {
            ((TextView) view).setText("x");
        }
    }

Это мой класс адаптера:

public class GridAdapter extends BaseAdapter {

    private final Context mContext;
    private  String[] numbers;


    public GridAdapter(Context context, String[] numbers) {
        this.mContext = context;
        this.numbers = numbers;
    }


    @Override
    public int getCount() {
        return numbers.length;
    }


    @Override
    public long getItemId(int position) {
        return 0;
    }


    @Override
    public Object getItem(int position) {
        return numbers[position];
        //return null;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        LayoutInflater inflater = (LayoutInflater)
                mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        View gridView;


        if (convertView == null) {

            gridView = new View(mContext);


            gridView = inflater.inflate(R.layout.textview_layout, null);


            TextView textView = (TextView) gridView.findViewById(R.id.cell);
            textView.setText(numbers[position]);

        } else {
            gridView = (View) convertView;
        }

        return gridView;
    }

}

Номер заполнен переделан:

    public void numberFill(View view) {
    int index = (Integer) view.getTag();
    if (numbers[index].toString().isEmpty()) {
        numbers[index] = String.valueOf(numbCounter + 1);
        numbCounter++;
    }

    else if (!numbers[index].toString().isEmpty() && numbCounter >= 25) {
        numbers[index] = "x";
    }

    gridAdapter.notifyDataSetChanged();
}

`

Ответы на вопрос(1)

Ваш ответ на вопрос