Заполнить представление XML во время выполнения экземпляром пользовательского представления - PullRequest
0 голосов
/ 13 июня 2011

У меня есть пользовательский вид, который я определяю во время выполнения.Я не хочу, чтобы он занимал весь экран, я хочу, чтобы он был внутри большего макета, определенного в XML.

Это то, что я хотел бы сделать в псевдокоде:

View newView = new MyCustomView();
View.replace(newView , R.id.old_view);

Есть идеи?

Спасибо

1 Ответ

0 голосов
/ 13 июня 2011

Я предложил использовать ViewStub в комментариях выше, но я думаю, что это может быть излишним.Вы можете просто попробовать это:

package com.example.viewstub;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.TextView;

public class ViewStubTestActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        TextView old_textview = (TextView )this.findViewById(R.id.textView1);
        old_textview.setVisibility(View.INVISIBLE);

        TextView tv = new TextView(this.getApplicationContext());
        tv.setText("new Text!!!");

        LinearLayout ll = (LinearLayout)this.findViewById(R.id.linearLayout_1);
        ll.addView(tv);
    }
}

Это просто получение ссылки на макет верхнего уровня, добавление нового компонента и удаление старого.Я думаю, что это должно сработать.

Casp

...