在Android中动态更改视图内部视图

时间:2010-12-13 09:14:55

标签: android view dynamic

我有这个RelativeView,顶部有3个radiobuttons。我想在用户点击其中一个按钮时更改视图的底部。

蓝色部分是我想加载不同视图的地方。 alt text

@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
    if (checkedId == iVerzekeringen){
        layout.removeView(body);   // THIS PART IS
        layout.addView(testview);  // NOT WORKING
    }
    else if (checkedId == iPersoonlijk){
    }
    else if (checkedId == iNotities){
    }
}

如何将不同的视图加载到蓝色部分?

2 个答案:

答案 0 :(得分:5)

我找到了答案:

layout = (RelativeLayout)findViewById(R.id.rellayout);
LayoutInflater layoutInflater = (LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
layout.addView(layoutInflater.inflate(R.layout.gegevens_verzekeringen, group, false), 1 );

这会在父xml上加载视图。我想把它加载到'body'部分(图片中的蓝色部分)

我宣布这样的身体:

body = (RelativeLayout)findViewById(R.id.body);

但是当我做body.addView(layoutInflater.inflate(R.layout.gegevens_verzekeringen, group, false), 1);

它是java.lang.IndexOutOfBoundsException: index=1 count=0

我该如何解决这个问题?

编辑:知道了:

body.addView(layoutInflater.inflate(R.layout.gegevens_verzekeringen, null));

答案 1 :(得分:0)

  • 使用findViewById获取对每个RadioButton
  • 的引用
  • OnClickListener
  • 上使用setOnClickListener注册RadioButton
  • OnClickListener回调中,加载不同的背景