Android Studio> GridLayout> как получить положение ячейки? - PullRequest
0 голосов
/ 03 мая 2020
<GridLayout
        android:id="@+id/gridLayout"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        app:layout_constraintBottom_toTopOf="@+id/linearLayout"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">

        <Button
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:layout_rowWeight="1"
            android:layout_columnWeight="1"
            android:layout_row="0"
            android:layout_column="0"
            android:onClick="markSquare" />

        <Button
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:layout_rowWeight="1"
            android:layout_columnWeight="1"
            android:layout_row="0"
            android:layout_column="1"
            android:onClick="markSquare" />

        <Button
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:layout_rowWeight="1"
            android:layout_columnWeight="1"
            android:layout_row="1"
            android:layout_column="0"
            android:onClick="markSquare" />

        <Button
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:layout_rowWeight="1"
            android:layout_columnWeight="1"
            android:layout_row="1"
            android:onClick="markSquare" />

</GridLayout>

Описание: Каждая кнопка находится внутри ячейки и указывает на метод под названием markSquare, который выглядит следующим образом:

public void markSquare(View v) {
}

Как я могу получить позицию параметра "v"? (та же самая позиция, которую я указал в "layout_row" и "layout_column")

1 Ответ

0 голосов
/ 03 мая 2020

Нет прямого способа получить положение ячейки. Однако вы используете идентификатор представления, чтобы получить точное представление, которое щелкает.

1: присвойте указанные идентификаторы c идентификатору button.ie button1, button2

2: и проверьте, чтобы ваш просмотр нажимал на идентификаторы как:

 public void markSquare(View v) {
    switch(v.getId()){
    case R.id.button1:{
    //Do here what you want
    break;
    }

    case R.id.button2:{
    //Do here what you want

    break;
    }

    }
 }
...