在 Android 中动态更改视图内部视图 [英] Dynamically change view inside view in Android
问题描述
我有一个上面有 3 个单选按钮的 RelativeView.当用户单击其中一个按钮时,我想更改视图的底部.
I have this RelativeView with 3 radiobuttons on top. I want to change the bottom part of the view when the user clicks on one of the buttons.
蓝色部分是我想加载不同视图的地方.
The blue part is the place i want to load different Views in.
@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){
}
}
如何将不同的视图加载到蓝色部分?
How can i load different Views into the blue part?
推荐答案
我找到了答案:
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 上加载视图.我希望它只加载到身体"部分(图片中的蓝色部分)
This loads the view over the parent xml. I want it to load it over just the 'body' part (the blue part in the picture)
我是这样声明身体的:
body = (RelativeLayout)findViewById(R.id.body);
但是当我做 body.addView(layoutInflater.inflate(R.layout.gegevens_verzekeringen, group, false), 1);
它说 java.lang.IndexOutOfBoundsException: index=1 count=0
我该如何解决这个问题?
How can i fix this?
明白了:
body.addView(layoutInflater.inflate(R.layout.gegevens_verzekeringen, null));
这篇关于在 Android 中动态更改视图内部视图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!