プログラムによるAndroidの相対的な対応

基本的には、テーブルに行を追加しようとしています。プログラムでこれを行う必要があります。

私はそれが私が欲しいコンテンツを追加することができますが、正確には私がそれを望む方法ではありません。

たとえば、右側にボタンのedittextボタンを使って、左側にテキストビューが必要です。

基本的に私はそれを以下のイメージのようにしたい:

http://s16.postimage.org/nluqthuut/Untitled_1.png .

また、私はちょうどとtextviewに幅をしたくないです。

とにかくここまで私が作ったことはここにあります:

XML:

<?xml version="1.0" encoding="utf-8"?>


    

        

            <button
                android:id="@+id/btnOutstandingJob"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="10dp"
                android:text="Outstanding Job" />

            <button
                android:id="@+id/btnVanStock"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="10dp"
                android:text="Van Stock" />

            <button
                android:id="@+id/btnRegister"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="5dp"
                android:text="Register User" />
        

    

    

        <button
            android:id="@+id/btnLogout"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_marginTop="5dp"
            android:text="Log Out" />
    


Java:

TableLayout table = (TableLayout) findViewById(R.id.tableLayout1);

TableRow row = new TableRow(vanstock.this);

RelativeLayout RowLayout = new RelativeLayout(vanstock.this);
RowLayout.setId(99);

TextView lblItem = new TextView(vanstock.this);
lblItem.setId(1);
lblItem.setText("ddfsgsdfgs");

RelativeLayout.LayoutParams lblitemParam = new RelativeLayout.LayoutParams(
        RelativeLayout.LayoutParams.WRAP_CONTENT,
        RelativeLayout.LayoutParams.WRAP_CONTENT);
lblitemParam.addRule(RelativeLayout.CENTER_VERTICAL,
        RelativeLayout.TRUE);
lblitemParam.addRule(RelativeLayout.ALIGN_PARENT_LEFT,
        RelativeLayout.TRUE);

lblItem.setLayoutParams(lblitemParam);
RowLayout.addView(lblItem);

Button btnPlus = new Button(vanstock.this);
btnPlus.setId(4);
btnPlus.setText("+");
btnPlus.setWidth(40);

RelativeLayout.LayoutParams btnPlusParams = new RelativeLayout.LayoutParams(
        RelativeLayout.LayoutParams.WRAP_CONTENT,
        RelativeLayout.LayoutParams.WRAP_CONTENT);
btnPlusParams.addRule(RelativeLayout.ALIGN_PARENT_TOP,
        RelativeLayout.TRUE);
btnPlusParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT,
        RelativeLayout.TRUE);
btnPlus.setLayoutParams(btnPlusParams);

RowLayout.addView(btnPlus);

EditText txtItem = new EditText(vanstock.this);
txtItem.setId(3);
txtItem.setWidth(40);

RelativeLayout.LayoutParams txtItemParams = new RelativeLayout.LayoutParams(
        RelativeLayout.LayoutParams.WRAP_CONTENT,
        RelativeLayout.LayoutParams.WRAP_CONTENT);
txtItemParams.addRule(RelativeLayout.ALIGN_PARENT_TOP,
        RelativeLayout.TRUE);
txtItemParams.addRule(RelativeLayout.LEFT_OF, btnPlus.getId());
txtItem.setLayoutParams(txtItemParams);

RowLayout.addView(txtItem);

Button btnMinus = new Button(vanstock.this);
btnMinus.setId(2);
btnMinus.setText("-");
btnMinus.setWidth(40);

RelativeLayout.LayoutParams btnMinusParams = new RelativeLayout.LayoutParams(
        RelativeLayout.LayoutParams.WRAP_CONTENT,
        RelativeLayout.LayoutParams.WRAP_CONTENT);
btnMinusParams.addRule(RelativeLayout.ALIGN_PARENT_TOP, RelativeLayout.TRUE);
btnMinusParams.addRule(RelativeLayout.LEFT_OF, txtItem.getId());
btnPlus.setLayoutParams(btnMinusParams);

RowLayout.addView(btnPlus);
row.addView(RowLayout);

table.addView(row, new LayoutParams(LayoutParams.WRAP_CONTENT,
        LayoutParams.WRAP_CONTENT));

私は等を検索しようとしたが、私はまだ正常に動作するようになることはできません..任意の助けをいただければ幸いです!

1
私はあなたが複雑すぎると思う。私がリンクされたイメージのような構造を作るなら、xmlファイルから膨らんだ行を持つListViewを使用します。このようにして、GUIのすべてのものはxmlで定義され、Javaで行うことはほんのわずかです。
追加された 著者 Robert Kolner,

1 答え

 LayoutInflater inflater = getLayoutInflater();
 TableRow row = (TableRow) inflater.inflate(R.layout.table,
                _tablelayout, false);
 TextView textview = (TextView) row.findViewById(R.id.rowdata);

このように、要件を満たすことができます。これで十分ですか?

ベスト V.k

2
追加された
ええ、確かにあなたがfine.Tryこれを別のものを理解している私はあなたを助ける2maro ..
追加された 著者 vk hooda,
:-)それを維持し、言及しない..
追加された 著者 vk hooda,
私ははいを理解していると思うので、テーブルの行だけでXMLを作成しますか?それからこのような何か? TableLayoutテーブル=(TableLayout)findViewById(R.id.tableLayout1); LayoutInflaterインフレータ= getLayoutInflater(); TableRow row =(TableRow)インフレータ.inflate(R.layout.tablerow、table、false);
追加された 著者 Adam Buckley,
いくつかの奇妙な結果の後に少し遊んで..しかし、周りを遊んだ後、私はそれがどのように戻って、今それが完璧に動作していると思った? :混乱している、しかし、感謝:)
追加された 著者 Adam Buckley,