1

リストが空の場合、つまりリストに入力するデータがない場合に、ボタンを動的に追加しようとしています。以下のコードを試しましたが、うまくいきません

public class TableDemoActivity extends Activity {

        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);

            LinearLayout linearLayout = (LinearLayout) findViewById(R.id.linear);

            Button test = new Button(this);
            test.setText("Hello Android");
            test.setId(5);
            test.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams(LayoutParams.FILL_PARENT,
                    LayoutParams.WRAP_CONTENT));

            linearLayout.addView(test);

        }

    }

レイアウトファイルの内容はこちら

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

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/linear"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

<TableLayout 
    android:id="@+id/TblLyt"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
     >

    <TableRow
        android:id="@+id/AcctHeader"
    >
    </TableRow>

    <ExpandableListView
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/BankExpandableListView"
        android:layout_width="fill_parent"
        android:layout_height="443dp"
        android:layout_weight="1.32"
    >
    </ExpandableListView>

</TableLayout>
</LinearLayout>
4

3 に答える 3

4

ボタンをxmlレイアウトファイルに配置し、条件に従ってvisible&を実行できますinvisible

if(your condition)
{
button.setVisibility(View.VISIBLE);
}
else
{
button.setVisibility(View.GONE);
}
于 2012-05-24T06:17:36.827 に答える
2

私はあなたの問題を解決しました。次の手順を実行します。あなたのコードは正しいですが、小さな間違いを犯しています。ビューまたはボタンを線形レイアウトに追加していますが、テーブル レイアウトは幅と高さを親として使用して画面全体を保持しているため、次のようにテーブル レイアウトにボタンを追加するだけです。

import android.app.Activity;
import android.os.Bundle;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.LinearLayout.LayoutParams;
import android.widget.TableLayout;

public class TableDemoActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        LinearLayout linearLayout = (LinearLayout) findViewById(R.id.linear);
        TableLayout table=(TableLayout) findViewById(R.id.TblLyt);

        Button test = new Button(this);
        test.setText("Hello Android");
        test.setId(5);
        test.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT,
                LayoutParams.WRAP_CONTENT));

        table.addView(test);        
        //linearLayout.addView(test);
    }
}

ボタンを動的に追加できるようになりました。

于 2012-05-24T06:34:45.880 に答える
1

それはそこにありますが、次の理由で見ることができません:

<TableLayout  
    android:id="@+id/TblLyt" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 

レイアウト全体を埋めるようにテーブルに指示しています。TableLayout を GONE に設定してからボタンを追加するか、 を に変更できlayout_heightますwrap_content

于 2012-05-24T06:23:01.473 に答える