Динамически менять вид изнутри в Android - PullRequest
3 голосов
/ 13 декабря 2010

У меня есть этот RelativeView с 3-мя радиокнопками сверху. Я хочу изменить нижнюю часть представления, когда пользователь нажимает одну из кнопок.

Синяя часть - это место, в которое я хочу загрузить разные виды. 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 ]

5 голосов
/ 13 декабря 2010

Я вроде нашел ответ:

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

Это java.lang.IndexOutOfBoundsException: index=1 count=0

Как я могу это исправить?

Редактировать: Понял:

body.addView(layoutInflater.inflate(R.layout.gegevens_verzekeringen, null));
0 голосов
/ 13 декабря 2010
  • используйте findViewById, чтобы получить ссылку на каждого RadioButton
  • Зарегистрируйте OnClickListener, используя setOnClickListener на каждом RadioButton
  • Внутри вашего OnClickListenerобратный вызов, загрузить другой фон
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...