1

TextViewsをコードで動的に追加しています。現在、水平方向のLinearLayoutを使用しています。これは、テキストビューが行に収まらない場合に新しい行を追加すると思いました。そして、私がどれほど間違っていたか。

ユーザー入力に依存するため、行数はわかりません。そのため、列の数を指定できないため、GridViewは正しく感じられません。また、すべてのTextViewのすべてのサイズがわからないため、TextViewが非常に長く、行ごとに3つのTextViewが必要な場合は、見栄えが悪くなる可能性があります。

これには簡単な解決策があると確信しています。私はただ最良のものを知りたいだけです。TextViewsを追加するときにどのレイアウトを使用すればよいので、画面の幅に達すると最初の行の下に新しい行が作成されますか?

ありがとう!

4

2 に答える 2

2

これを参照してください:

package us.simpleit;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;

public class SimpleGUI extends Activity {
    TextView tv;
    EditText et;
    LinearLayout ll;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        //LinearLayout ll = new LinearLayout(this);
        ll = new LinearLayout(this);
        ll.setOrientation(android.widget.LinearLayout.VERTICAL);
        ll.setLayoutParams(new ViewGroup.LayoutParams(-1,-1));
        // ARGB: Opaque Red
        ll.setBackgroundColor(0x88ff0000);

        tv = new TextView(this);
        tv.setLayoutParams(new ViewGroup.LayoutParams(-1,-2));
        tv.setText("sample text goes here");
        // ARGB: Opaque Green
        tv.setBackgroundColor(0x5500ff00);
        ll.addView(tv);

        et = new EditText(this);
        et.setLayoutParams(new ViewGroup.LayoutParams(-1,-2));
        et.setText("edit me please");
        // ARGB: Solid Blue
        et.setBackgroundColor(0xff0000ff);
        ll.addView(et);

        Button btn = new Button(this);
        btn.setText("Go!");
        btn.setOnClickListener(new Button.OnClickListener() {
            public void onClick(View v) {
                tv.setText(et.getText().toString());
            }
        });

        ll.addView(btn);
        setContentView(ll);

        //setContentView(R.layout.main);
    }
}

ここでは、1つのTextViewと1つのEditTextを使用しました。その代わりに、2つのTextViewまたは任意の数のビューを取得できます。

楽しみ。:)

于 2012-04-26T12:08:44.640 に答える
0

できることは、メインのLinearLayoutを垂直方向に、多くのLinearLayoutの子を水平方向に作成することです。TextViewを追加する場合は、メインレイアウトの最後の子を取得して、この子に新しいTextViewを含めることができるかどうかを確認します。そうでない場合は、水平方向の新しいLinearLayoutを追加します

于 2012-04-26T11:28:44.360 に答える