如何从父linearlayout中删除返回列表视图?

时间:2013-06-18 08:14:54

标签: java android view android-linearlayout

我有MainActivity和ListClassFile。

MainActivity具有来自XML的Linearlayout(name是recordContent)组件。(使用findviewById获取)。

在ListClassFile文件中,我调用setListHandler将返回ListView类。

现在,我在MainActivity中有两个按钮。当我单击A按钮时。

它将调用

private ListClassFile rdActivity = null;
private LinearLayout recordContent = null;
....
@Overrid
protected void onCreate(...){
...
  recordContent = (LinearLayout) findViewById(R.id.recordContent);

    ...
    if( rdActivity == null )
        {
            rdActivity = new ListClassFile();
            recordContent.addView( rdActivity.setListHandler(MainActivity.this) ); 

           // rdActivity.setListHandler(MainActivity.this) it will return listview

        }
    }
    ...
}

listview会显示。

当我点击B按钮时。

我会打电话给

   if( rdActivity != null )
          {
                rdActivity = null;
                recordContent.removeAllViews();
          }

它会成功删除。

但我只想删除listview。不是recordContent中的所有视图。

如何指定删除listview (rdActivity.setListHandler(MainActivity.this) )?

非常感谢你。

2 个答案:

答案 0 :(得分:0)

而不是打电话

recordContent.removeAllViews();

呼叫:

recordContent.removeView(rdActivity);

或者你可以得到多个chield并删除最后一个:

int num = recordContent.getChildCount();
recordContent.removeViewAt(num-1);

答案 1 :(得分:0)

将返回的listview分配给实例变量,在删除时使用它。

private ListClassFile rdActivity = null;
private LinearLayout recordContent = null;
private ListView lv;
....
@Overrid
protected void onCreate(...){
...
  recordContent = (LinearLayout) findViewById(R.id.recordContent);

    ...
    if( rdActivity == null )
        {
            rdActivity = new ListClassFile();
            lv = rdActivity.setListHandler(MainActivity.this);
            recordContent.addView(lv); 

           // rdActivity.setListHandler(MainActivity.this) it will return listview

        }
    }
    ...
}

点击B按钮

if( rdActivity != null )
{
rdActivity = null;
**recordContent.removeView(lv);**
}