且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

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

更新时间:2023-11-29 15:21:52

我找到答案:

  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 =(RelativeLayout)findViewById(R.id.body); 

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



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



如何解决这个问题?



编辑: :

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


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?

I kinda found the answer:

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 );

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)

I declared the body like this:

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

But when i do body.addView(layoutInflater.inflate(R.layout.gegevens_verzekeringen, group, false), 1);

It sais java.lang.IndexOutOfBoundsException: index=1 count=0

How can i fix this?

Edit: Got it:

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