2

私は TextViews を持っていて、改行のように行に入れたいと思っています。TextView は、いくつかの機能を持つオブジェクトです。それらは、コンマで区切られた配列内の単語です。改行を入れて順番に表示したい。

これは私のコードです:

int i;
String p = "one, two, three, four, five, six, seven, eight, ten";
String[] array = p.split(",");

LinearLayout groupLL = new LinearLayout(this);
LinearLayout.LayoutParams gLLP = new LinearLayout.LayoutParams(
    new ViewGroup.MarginLayoutParams(
    LinearLayout.LayoutParams.WRAP_CONTENT,
    LinearLayout.LayoutParams.WRAP_CONTENT));

LinearLayout.LayoutParams mlp = new LinearLayout.LayoutParams(
    new ViewGroup.MarginLayoutParams(
    LinearLayout.LayoutParams.FILL_PARENT,
    LinearLayout.LayoutParams.WRAP_CONTENT));
mlp.setMargins(0, 0, 10, 0);

for (i = 0; i < array.length; i++) {
    TextView newTextView = new TextView(this);
    newTextView.setText(array[i]);
    newTextView.setBackgroundColor(Color.RED);
    newTextView.setSingleLine(true);
    newTextView.setTextSize(20);

    groupLL.addView(newTextView, mlp);
}

ll.addView(groupLL, gLLP);

これは私のレイアウトです:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/ScrollView02"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >

    <RelativeLayout
    android:id="@+id/RelativeLayout02"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <LinearLayout android:id="@+id/LinearLayout2"
              xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:orientation="vertical" >
    </LinearLayout>

    </RelativeLayout>

</ScrollView>

私はこれを持っています:

|one two three four five s|
|                         |
|                         |

これ欲しい:

|one two three four five  |
|six seven eight ten      |
|                         |

編集:

newTextView.setSingleLine(true); を変更すると newTextView.setSingleLine(false) に; それから私はこれを持っています:

|one two three four five six |
|                         sev|
|                          en|
4

4 に答える 4

1

変化する

newTextView.setSingleLine(true);

 newTextView.setSingleLine(false);

それがうまくいくことを願っています私の友人......

于 2012-10-05T12:48:24.237 に答える
1

textviews に setEllipsize を設定してみてください

newTextView.setEllipsize(null);
于 2012-10-05T12:49:03.790 に答える
0

これでtrueをnewTextView.setSingleLine(true);設定すると、テキストを次の行で折り返す場合はfalseに設定する必要があります

newTextView.setSingleLine(false);これをforループで変更するだけです

あなたのコードによれば、配列オブジェクトの単一の要素を毎回 new TextView に追加しています。このメソッドを設定する必要はありません。このためにレイアウトを変更する必要があります。単一のテキストビューに p 文字列を追加または設定している場合は、必要に応じて取得できますが、複数のテキストビューではレイアウトを変更する必要があります。

単一のテキストビューの場合

TextView newTextView = new TextView(this);
newTextView.setText(p);
newTextView.setBackgroundColor(Color.RED);
newTextView.setTextSize(20);

groupLL.addView(newTextView, mlp);
于 2012-10-05T12:47:17.397 に答える
0

以下を true ではなく false に設定して、ラッピングを有効にしますnewTextView.setSingleLine(true);

于 2012-10-05T12:48:13.220 に答える