动态地在listView的顶部添加一个按钮

时间:2011-06-28 08:57:11

标签: android listview dynamic

我在ListViewActivity上显示listView。我想在LisView的顶部添加一个按钮。我试过这个:

    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //....
    setContentView(R.layout.listview_singlegrey);
    LinearLayout linear = (LinearLayout) findViewById(R.id.list_comment);
    Button btAddComment = new Button(this);
    btAddComment.setText("Añadir comentario");
    linear.addView(btAddComment);
    setContentView(linear); 
    //....      
}

文件listview_singlegrey.xml如下:

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="fill_parent"
        android:layout_height="fill_parent" android:id="@+id/list_comment"
        android:paddingLeft="10dp" android:paddingRight="10dp" android:background="@drawable/fondomain">    
    <ListView android:id="@+id/android:list" android:listSelector="@android:color/transparent"
          android:layout_width="wrap_content" android:layout_height="wrap_content"
          android:divider="@layout/linedivider" android:dividerHeight="10px"
          android:cacheColorHint="#0000" android:paddingTop="10dp"           
          />
</LinearLayout>

但我看不到按钮。有什么想法吗?

7 个答案:

答案 0 :(得分:1)

摆脱

setContentView(linear); 

另外,请先尝试在XML中添加按钮并确保它显示出来。您可能需要摆弄layout_heightlayout_weight参数,以便ListView不会将其推到屏幕外。一旦知道了正确的参数,就在运行时设置它们。

答案 1 :(得分:1)

如果要在列表视图的顶部添加按钮,则必须将其添加到第零个索引

linear.addView(btAddComment, 0);

现在,您的列表视图位于索引1中。

答案 2 :(得分:1)

查看此方法addHeaderView,它会在列表顶部添加一个固定视图。

答案 3 :(得分:0)

我猜你在代码中创建按钮时会错过LayoutParams。 使用Button.setLayoutParams(new LayoutParams(...))。

但我不推荐这种方式。为什么不在列表视图上方添加按钮 在XML中?然后它在那里保持固定。像这样:

<LinearLayout> <Button/> <ListView /> </LinearLayout>

如果你想要一个用滚动列表视图的“可滚动按钮”, 使用按钮编写XML文件,通过getLayoutInflater.inflate(R.layout ...)对其进行充气并使用ListView.addHeaderView()。

答案 4 :(得分:0)

您需要使用ListView的{​​{3}}。

根据文档

  

添加固定视图以显示在顶部   的清单。如果addHeaderView是   意见不止一次   按照添加顺序显示。   使用此调用添加的视图可以采用   如果他们想要的话。注意:调用此方法   在调用setAdapter之前。就是这样   ListView可以包装提供的游标   还有一个也会占   页眉和页脚视图。

答案 5 :(得分:0)

你想要listview的标题吗?你可以像这样使用标题

listView.addHeaderView(view);

此处视图可以是任何视图组件。

答案 6 :(得分:0)

在将按钮添加到布局之前,您应该尝试设置布局参数。

这样的事情:

btAddComment.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));

这应该可以解决问题。如果没有,请告诉我。