0

一連のアルファベットをグリッドに表示する Android WordSearch アプリのようなものを作成しようとしています。最初は GridView を使用していましたが、一度に水平方向と垂直方向の両方をスクロールできませんでした。したがって、テーブルレイアウトに切り替えました。今、私は以下のようにこのような外観を与えたい:

ここに画像の説明を入力

TableLayout を使用している場合、データ全体を 1 つの垂直方向に 1 つの行として読み取っています。 ここに画像の説明を入力

単一の TableRow と単一の TextView をループして前のビューを作成できるかどうかを知りたい: 以下は私のコードです

         int index = 0;
                    TableLayout tableLayout = new TableLayout(getApplicationContext());
                    tableLayout.setColumnStretchable(2, true);
                    TableRow tableRow;
                    TextView textView;
                    for (int i = 0; i < 50; i++)  // this reads 50 chars from text file
                    {
                            tableRow = new TableRow(getApplicationContext());

                            for (int j = 0; j < 35; j++) //this creates 35 repetitions of above tablerow
                            {

                                    textView = new TextView(getApplicationContext());
                                    textView.setText(split3(numbers)[i]);
                                    textView.setTextSize(19);
                                    textView.setPadding(1, 2, 0, 2);
                                    textView.setTypeface(null, Typeface.BOLD);
                                    tableRow.addView(textView);
                                    index = index + 1;
                            }
                            tableLayout.addView(tableRow);
                    }

                    scrollView = new HScroll(GridActivity.this);
                    scrollView.addView(tableLayout);
                    VSC = new VScroll(GridActivity.this);
                    VSC.addView(scrollView);
                    setContentView(VSC);
            }
4

1 に答える 1

0

やっと自力で解決できました

        TextView textView = new TextView(getApplicationContext());
        tableRow = new TableRow(getApplicationContext());

        for (int i = 0; i < Math.round(numbers.length()/50); i++) // number of vertical rows
        { 
            tableRow = new TableRow(getApplicationContext()); 

            for (int j = 0; j < 45; j++) // no of max characters in a column  
            { 

                textView = new TextView(getApplicationContext()); 
                textView.setText(split3(numbers)[index]); 

                if (index == 13 || index == 15 || index == 17|| index == 19)
                {
                    textView.setTextColor(Color.RED);
                }
                else
                {
                    textView.setTextColor(Color.BLACK);
                }
                textView.setTextSize(21); 
                textView.setPadding(1, 1, 1, 1); 
                textView.setTypeface(null, Typeface.BOLD); 
                tableRow.addView(textView); 
                index = index+1; 
            } 

            tableLayout.addView(tableRow); 
        }

私が欲しかったものを手に入れました。 ここに画像の説明を入力

于 2013-08-23T11:39:42.073 に答える