我有一个removeAllViews和setContentView的问题.....两个都不适合我,我不知道为什么。 我在一个返回视图的类中有一个函数,我想将该视图添加到屏幕上,该视图将在每5秒后更改..... 所以5秒后我在添加视图的布局上调用removeAllViews然后再添加....但令人惊讶的是旧视图仍然存在并且它在最后添加新视图....
与setContentView相同的问题我也尝试了这个但是它也和主布局一样工作,它也添加了最后的视图而不是替换整个屏幕.......
请帮忙......先谢谢............
setContentView(logic.getView());
和
LinearLayout layout = blah blah blah;
layout.removeAllViews();
layout.addView(logic.getView(), layout parameters....);
答案 0 :(得分:1)
确定。通过对您的评论的一些评论,我知道为什么要创建这个问题。
可能是您没有正确删除第一个View。这就是为什么当你要添加另一个视图时,有两个视图(第一个是前一个视图,第二个是新添加的视图)而不是一个新视图。
因此请正确删除第一个视图,然后根据需要添加视图。
希望它会对你有所帮助。
感谢。
享受。 :)
答案 1 :(得分:0)
<强> 1. Using Visiblity...
强>
查看setVisibility方法以更改其可见性选项 风景。此处
- **` 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);