7

3x3 形式で9TableLayout個あります。ButtonsTableLayout の ID (ボタン Id ではない) を使用して、これらのボタンのテキストにプログラムでアクセスする方法は?

4

2 に答える 2

20

次のようなものを使用します。

TableLayout tblLayout = (TableLayout)findViewById(R.id.tableLayout);
TableRow row = (TableRow)tblLayout.getChildAt(0); // Here get row id depending on number of row
Button button = (Button)row.getChildAt(XXX); // get child index on particular row
String buttonText = button.getText().toString();

3x3 形式: (実際のコードを理解するためのコードは異なる場合があります)

for(int i=0;i<3;i++)
{
 TableRow row = (TableRow)tblLayout.getChildAt(i);
  for(int j=0;j<3;j++){
    Button button = (Button)row.getChildAt(j); // get child index on particular row
    String buttonText = button.getText().toString();
    Log.i("Button index: "+(i+j), buttonText);
 }
}
于 2012-07-16T12:54:49.500 に答える
6

あなたができることは、TableLayout使用のインスタンスを見つけることです

TableLayout layout_tbl = (TableLayout) findViewById(R.id.layout_tbl);

次に、 を使用してとのgetChildCount()各子を反復処理できます。TableLayoutTableRowViewinstanceofNPE

for (int i = 0; i < layout_tbl.getChildCount(); i++) {
     View parentRow = layout_tbl.getChildAt(i);
     if(parentRow instanceof TableRow){
                for (int j = 0; j < parentRow.getChildCount(); j++){
                   Button button = (Button ) parentRow.getChildAt(j);
                   if(button instanceof Button){
                      String text = button.getText().toString();
                }
       }
   }
于 2012-07-16T13:18:28.243 に答える