列表为空时添加按钮

时间:2012-05-24 06:12:36

标签: android android-layout

我试图在列表为空时动态添加按钮,即没有数据填充列表。我尝试了以下代码并且无法正常工作

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>

3 个答案:

答案 0 :(得分:4)

您可以将按钮放在xml布局文件中并执行visible&amp;根据您的情况invisible

if(your condition)
{
button.setVisibility(View.VISIBLE);
}
else
{
button.setVisibility(View.GONE);
}

答案 1 :(得分: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);
    }
}

现在您可以动态添加按钮。

答案 2 :(得分:1)

就在那里,你因为这个而无法看到它:

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

您正在告诉表格填写整个布局。您可以将TableLayout设置为GONE然后添加按钮,或者您可以将layout_height更改为wrap_content