removeAllViews和setContentView无法正常工作

时间:2012-01-25 05:36:55

标签: android android-layout

我有一个removeAllViews和setContentView的问题.....两个都不适合我,我不知道为什么。 我在一个返回视图的类中有一个函数,我想将该视图添加到屏幕上,该视图将在每5秒后更改..... 所以5秒后我在添加视图的布局上调用removeAllViews然后再添加....但令人惊讶的是旧视图仍然存在并且它在最后添加新视图....

与setContentView相同的问题我也尝试了这个但是它也和主布局一样工作,它也添加了最后的视图而不是替换整个屏幕.......

请帮忙......先谢谢............

setContentView(logic.getView());

LinearLayout layout = blah blah blah;
layout.removeAllViews();
layout.addView(logic.getView(), layout parameters....);

2 个答案:

答案 0 :(得分:1)

确定。通过对您的评论的一些评论,我知道为什么要创建这个问题。

可能是您没有正确删除第一个View。这就是为什么当你要添加另一个视图时,有两个视图(第一个是前一个视图,第二个是新添加的视图)而不是一个新视图。

因此请正确删除第一个视图,然后根据需要添加视图。

希望它会对你有所帮助。

感谢。

享受。 :)

答案 1 :(得分:0)

  • <强> 1. Using Visiblity...

    查看setVisibility方法以更改其可见性选项 风景。此处

developer.android

- **` 2.Runtime Add And Delete View`**  


LinearLayout layout;
    TextView textview1 ,textview;
    Button btn ;
layout =new LinearLayout(this);
        LayoutParams params = new LinearLayout.LayoutParams(
                LayoutParams.FILL_PARENT,
                LayoutParams.FILL_PARENT, 1.0f);
        layout.setLayoutParams(params);

        btn = new Button(this);
        LayoutParams param = new LinearLayout.LayoutParams(
                LayoutParams.WRAP_CONTENT,
                LayoutParams.WRAP_CONTENT, 1.0f);

        btn.setLayoutParams(param);
        btn.setText("Change");

       textview =new TextView(this);
       textview.setLayoutParams(param);
       textview.setText("Text 1...");


       textview1 =new TextView(this);
       textview1.setLayoutParams(param);
       textview1.setText("Text 2 ...");

        layout.addView(textview);
        layout.addView(btn);

        btn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Log.i("Remove All View ", "REmove");
                layout.removeAllViews();
                layout.addView(textview1);
                layout.addView(btn);
                Log.i("Remove All View ", "REmove");
            }
        });
        setContentView(layout);