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_heightwrap_content.

于 2012-05-24T06:23:01.473 回答