removeAllViews и setContentView не работают - PullRequest
5 голосов
/ 25 января 2012

У меня проблема с removeAllViews и setContentView ..... оба не работают для меня, я не знаю почему.У меня есть функция в классе, которая возвращает представление, и я хочу добавить это представление на экран, и это представление будет меняться через каждые 5 секунд ..... поэтому через 5 секунд я вызываю removeAllViews в макете, в котором это представлениедобавляется, а затем добавляется снова .... но, что удивительно, старый вид все еще существует, и он добавляет новый вид в конце ....

Та же проблема с setContentView Я пробую это также, но это такжеработать так же, как основной макет, он также добавляет вид в конце, а не заменить весь экран .......

пожалуйста, помогите ...... заранее спасибо ............

setContentView(logic.getView());

и

LinearLayout layout = blah blah blah;
layout.removeAllViews();
layout.addView(logic.getView(), layout parameters....);

Ответы [ 2 ]

1 голос
/ 25 января 2012

Хорошо.С некоторыми отзывами ваших комментариев я понял, почему эта проблема создана.

Возможно, вы не удаляете первый вид должным образом.Вот почему, в то время как вы собираетесь добавить другой вид, вместо одного нового вида существует два вида (1-й - предыдущий, а второй - новый).

Поэтому удалите первый вид должным образом изатем добавьте вид, как хотите.

Надеюсь, он вам поможет.

Спасибо.

Наслаждайтесь.:)

0 голосов
/ 25 января 2012
  • 1. Using Visiblity...

    Посмотрите на метод setVisibility, чтобы изменить параметры видимости для представления.Здесь

developer.android

- **` 2.Runtime Add And Delete View`**  


LinearLayout layout;
    TextView textview1 ,textview;
    Button btn ;
layout =new LinearLayout(this);
        LayoutParams params = new LinearLayout.LayoutParams(
                LayoutParams.FILL_PARENT,
                LayoutParams.FILL_PARENT, 1.0f);
        layout.setLayoutParams(params);

        btn = new Button(this);
        LayoutParams param = new LinearLayout.LayoutParams(
                LayoutParams.WRAP_CONTENT,
                LayoutParams.WRAP_CONTENT, 1.0f);

        btn.setLayoutParams(param);
        btn.setText("Change");

       textview =new TextView(this);
       textview.setLayoutParams(param);
       textview.setText("Text 1...");


       textview1 =new TextView(this);
       textview1.setLayoutParams(param);
       textview1.setText("Text 2 ...");

        layout.addView(textview);
        layout.addView(btn);

        btn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Log.i("Remove All View ", "REmove");
                layout.removeAllViews();
                layout.addView(textview1);
                layout.addView(btn);
                Log.i("Remove All View ", "REmove");
            }
        });
        setContentView(layout);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...