プログラミングとかブログ

Unity/C#/SRPGStudio/RPGツクールMVの情報とかその他気になったことを調べて書きます。

【Java】TableLayoutからTableRow内の全データにアクセスする方法

javaは不慣れだったので、TableLayoutで作った以下の9×9のマスを浚おうとして詰まりました。
f:id:shirakamisauto:20200906120620p:plain

最初はすべてのTextViewをビューバインディングで取得してはsetTextするという最悪なことをやっていましたが、ふつうにfor文ぶん回してひたすらキャストしてgetChildAtするだけでできますよね。

ActivityMainBinding binding = 
DataBindingUtil.setContentView(this, R.layout.activity_main);

 for (int x = 0; x < 9; x++) {
     TableRow tableRow = ((TableRow)binding.boardLayout.getChildAt(x));
     for (int y = 0; y < 9; y++) {
         TextView textView = (TextView) tableRow.getChildAt(y);
         textView.setText("何か");
     }
 }

UIは以下のが延々と続きます。

 <TableLayout
            android:id="@+id/boardLayout"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="20dp"
            android:layout_marginTop="164dp"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            >

            <TableRow
                android:id="@+id/row1"
                android:layout_width="match_parent"
                android:layout_height="match_parent">

                <TextView
                    android:id="@+id/textView11"
                    android:layout_width="40dp"
                    android:layout_height="40dp"
                    android:gravity="center"
                    android:background="@drawable/frame"                       
                    android:text="@string/blank"
                    android:textSize="30sp" />

                <TextView
                    android:id="@+id/textView12"
                    android:layout_width="40dp"
                    android:layout_height="40dp"
                    android:gravity="center"
                    android:background="@drawable/frame"
                    android:text="@string/blank"
                    android:textSize="30sp" />

                <TextView
                    android:id="@+id/textView13"
                    android:layout_width="40dp"
                    android:layout_height="40dp"
                    android:gravity="center"
                    android:background="@drawable/frame"
                    android:text="@string/blank"
                    android:textSize="30sp" />

                <TextView
                    android:id="@+id/textView14"
                    android:layout_width="40dp"
                    android:layout_height="40dp"
                    android:gravity="center"
                    android:background="@drawable/frame"
                    android:text="@string/blank"
                    android:textSize="30sp" />

                <TextView
                    android:id="@+id/textView15"
                    android:layout_width="40dp"
                    android:layout_height="40dp"
                    android:gravity="center"
                    android:background="@drawable/frame"
                    android:text="@string/blank"
                    android:textSize="30sp" />

                <TextView
                    android:id="@+id/textView16"
                    android:layout_width="40dp"
                    android:layout_height="40dp"
                    android:gravity="center"
                    android:background="@drawable/frame"
                    android:text="@string/blank"
                    android:textSize="30sp" />


                <TextView
                    android:id="@+id/textView17"
                    android:layout_width="40dp"
                    android:layout_height="40dp"
                    android:gravity="center"
                    android:background="@drawable/frame"
                    android:text="@string/blank"
                    android:textSize="30sp" />

                <TextView
                    android:id="@+id/textView18"
                    android:layout_width="40dp"
                    android:layout_height="40dp"
                    android:gravity="center"
                    android:background="@drawable/frame"
                    android:text="@string/blank"
                    android:textSize="30sp" />

                <TextView
                    android:id="@+id/textView19"
                    android:layout_width="40dp"
                    android:layout_height="40dp"
                    android:gravity="center"
                    android:background="@drawable/frame"
                    android:text="@string/blank"
                    android:textSize="30sp" />
            </TableRow>

            <TableRow
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:id="@+id/row2">
以下略


以下がfor文を使わなかったときの暴挙

 binding.textView11.setText("何か");
 binding.textView12.setText("何か");
 binding.textView13.setText("何か");
 binding.textView14.setText("何か");
 binding.textView15.setText("何か");
 binding.textView16.setText("何か");
 binding.textView17.setText("何か");
 binding.textView18.setText("何か");
 binding.textView19.setText("何か");

 binding.textView21.setText("何か");
 binding.textView22.setText("何か");
 binding.textView23.setText("何か");
 binding.textView24.setText("何か");
 binding.textView25.setText("何か");
 binding.textView26.setText("何か");
 binding.textView27.setText("何か");
 binding.textView28.setText("何か");
 binding.textView29.setText("何か");

 binding.textView31.setText("何か");
 binding.textView32.setText("何か");
 binding.textView33.setText("何か");
 binding.textView34.setText("何か");
 binding.textView35.setText("何か");
 binding.textView36.setText("何か");
 binding.textView37.setText("何か");
 binding.textView38.setText("何か");
 binding.textView39.setText("何か");

 binding.textView41.setText("何か");
 binding.textView42.setText("何か");
 binding.textView43.setText("何か");
 binding.textView44.setText("何か");
 binding.textView45.setText("何か");
 binding.textView46.setText("何か");
 binding.textView47.setText("何か");
 binding.textView48.setText("何か");
 binding.textView49.setText("何か");

 binding.textView51.setText("何か");
 binding.textView52.setText("何か");
 binding.textView53.setText("何か");
 binding.textView54.setText("何か");
 binding.textView55.setText("何か");
 binding.textView56.setText("何か");
 binding.textView57.setText("何か");
 binding.textView58.setText("何か");
 binding.textView59.setText("何か");

 binding.textView61.setText("何か");
 binding.textView62.setText("何か");
 binding.textView63.setText("何か");
 binding.textView64.setText("何か");
 binding.textView65.setText("何か");
 binding.textView66.setText("何か");
 binding.textView67.setText("何か");
 binding.textView68.setText("何か");
 binding.textView69.setText("何か");

 binding.textView71.setText("何か");
 binding.textView72.setText("何か");
 binding.textView73.setText("何か");
 binding.textView74.setText("何か");
 binding.textView75.setText("何か");
 binding.textView76.setText("何か");
 binding.textView77.setText("何か");
 binding.textView78.setText("何か");
 binding.textView79.setText("何か");

 binding.textView81.setText("何か");
 binding.textView82.setText("何か");
 binding.textView83.setText("何か");
 binding.textView84.setText("何か");
 binding.textView85.setText("何か");
 binding.textView86.setText("何か");
 binding.textView87.setText("何か");
 binding.textView88.setText("何か");
 binding.textView89.setText("何か");

 binding.textView91.setText("何か");
 binding.textView92.setText("何か");
 binding.textView93.setText("何か");
 binding.textView94.setText("何か");
 binding.textView95.setText("何か");
 binding.textView96.setText("何か");
 binding.textView97.setText("何か");
 binding.textView98.setText("何か");
 binding.textView99.setText("何か");