Android установил вид на viewflipper, если совпадение найдено - PullRequest
0 голосов
/ 20 октября 2011

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

String itrstr = itr.next();
RelativeLayout rl = new RelativeLayout(this);
TextView titletv= new TextView(this);
TextView bodytv = new TextView(this);

if(itrstr.equalsIgnoreCase(titlestr)){
    titletv.setText(Html.fromHtml(itrstr));
    titletv.setPadding(0, 0, 0, 0);
    bodytv.setText(Html.fromHtml(news.get(itrstr)));
    titletv.setId(count);
    bodytv.setPadding(0, 50,0, 0);
    rl.addView(titletv);
    rl.addView(bodytv);
    rl.setId(1);
 }else{    
        titletv.setText(Html.fromHtml(itrstr));
        titletv.setPadding(0, 0, 0, 0);
        bodytv.setText(Html.fromHtml(desc.get(count)));
        titletv.setId(count);
        bodytv.setPadding(0, 50,0, 0);
        rl.addView(titletv);
        rl.addView(bodytv);
        rl.setId(2+count);
  }
 vf.addView(rl);
 count++;

Спасибо

Edit-1

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

titletv.setText(Html.fromHtml(titlestr));
        titletv.setPadding(0, 0, 0, 0);
       bodytv.setText(Html.fromHtml(news.get(titlestr)));

        titletv.setId(count);
        bodytv.setPadding(0, 50,0, 0);

        bodytv.setHorizontalScrollBarEnabled(true);
        bodytv.setVerticalScrollBarEnabled(true);
        bodytv.setMovementMethod(new ScrollingMovementMethod());
        rl.addView(titletv);
        rl.addView(bodytv);
        rl.setId(1);
        vf.addView(rl);

      //add the view 
      while(itr.hasNext()){
          //Log.i("ArrayList: "+Integer.toString(count),itr.next()+" Desc: "+desc.get(count));
          String itrstr = itr.next();
          rl = new RelativeLayout(this);
            titletv= new TextView(this);
            bodytv = new TextView(this);

            if(!itrstr.equalsIgnoreCase(titlestr)){



                    titletv.setText(Html.fromHtml(itrstr));
                    titletv.setPadding(0, 0, 0, 0);
                   bodytv.setText(Html.fromHtml(desc.get(count)));
                    titletv.setId(count);
                    bodytv.setPadding(0, 50,0, 0);
                    bodytv.setMovementMethod(new ScrollingMovementMethod());
                    rl.addView(titletv);
                    rl.addView(bodytv);

                    rl.setId(2+count);
            }

            vf.addView(rl);
          count++;
      }

1 Ответ

1 голос
/ 20 октября 2011

Вам нужно создать две относительные раскладки (или что-либо еще).Позиция в ViewFlipper не устанавливается через идентификатор.Это ко времени их добавления.Первый добавленный -> первый показанный

...