0

実行時に表示されるいくつかのテキストビューを表示しようとしています。これが私のコードです:

for (int i=0; i<arrBool.length; i++) {
    arrBool[i] = r.nextBoolean();
        if(arrBool[i]==true) {                  
            textView[i].setVisibility(View.VISIBLE);
 }
}

アプリケーションを実行すると、テキストビューがランダムに表示されるはずです。それは機能していますが、私の問題は、これらのテキストビューのレイアウトを設定したことです。Android アプリケーションを実行すると、表示されているテキストビューが左上隅に移動し、レイアウトの位置が失われます。

これに対処する方法は?

4

3 に答える 3

2

teoREtik ソリューションにさらに追加します。

レイアウトで android:visible プロパティを指定しないでください。

for (int i=0; i<arrBool.length; i++) {
    arrBool[i] = r.nextBoolean();
    if(arrBool[i]==true) {                  
        textView[i].setVisibility(View.VISIBLE);
    else 
        textView[i].setVisibility(View.INVISIBLE);
    }
}
于 2012-11-07T17:48:34.390 に答える
2

ビューの開始可視性パラメーターを に変更View.INVISIBLE して、レイアウト上で独自の場所を保持し、他のビューがこの場所を取得できないようにします。これは、次の場合の通常の動作です。View.GONE

于 2012-11-07T17:39:56.173 に答える
0

FOR ループを使用しても、開くたびにテキスト ビューがランダムに表示されるようになるとは思えません。整数 (false の場合は 0、true の場合は 1) とRandomを次のように使用しないのはなぜですか。

Random rnd = new Random(1);  // --> This will randomize numbers up to one;
int enable =  rnd.nextInt(); // --> Get the random value from 0 to 1

if(enable == 1) // --> If visibility of the text field is enabled everytime you opened the app...
{
      textView.setVisibility(View.VISIBLE);
} else {
      textView[i].setVisibility(View.INVISIBLE);
}

「 Android で特定の範囲で乱数を生成するにはどうすればよいですか?」トピックのこの例にアクセスして、整数の値のランダマイザーをさらに変更して実験することができます。考えられる答えをすべてチェックしてください。緑色のチェック マークは気にせず、コメントを調べてこれらの回答済みコードに注目してください。私があなたに提供したリンクである「ランダムな」トピックに関するこれらの回答はすべて、有効であることが保証されています。

レイアウトについては、相対レイアウトは座標に依存する画面解像度であるため、線形レイアウトを使用すると比例して元の場所にとどまるため、相対レイアウトを使用せずに線形レイアウトを使用することをお勧めします。また、res フォルダーの下の文字列値のサイズを操作して、さまざまな画面解像度 (HVGA から WVGA まで) に比例してテキストのサイズを維持する練習をしてみてください。文字サイズの比率について詳しくは、「画面サイズごとに異なるフォント サイズ」をご確認ください。

于 2012-11-20T04:33:13.043 に答える