如果找到匹配项,Android将在viewflipper上设置视图
我知道这可能是一个简单的解决办法,但我无法找到它。我想将viewflipper上的第一个视图设置为在if语句中发现为true的视图。下面是代码,它位于while循环中:如果找到匹配项,Android将在viewflipper上设置视图,android,android-layout,android-relativelayout,viewflipper,Android,Android Layout,Android Relativelayout,Viewflipper,我知道这可能是一个简单的解决办法,但我无法找到它。我想将viewflipper上的第一个视图设置为在if语句中发现为true的视图。下面是代码,它位于while循环中: String itrstr = itr.next(); RelativeLayout rl = new RelativeLayout(this); TextView titletv= new TextView(this); TextView bodytv = new TextView(this); if
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++;
谢谢
编辑-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++;
}
您需要创建两个相对的布局(或其他)。ViewFlipper中的位置不是通过id设置的,而是在添加它们时设置的。第一次添加->第一次显示格式错误和问题不清楚。您能告诉我您在这个问题上不理解的地方吗?谢谢..我已经实现了。你能告诉我为什么在那个视图之后会出现一个空屏幕吗?如果我不得不猜测,你需要把vf.addView(rl)放在If里面。否则,甚至会添加一个空的RelativeLayout。(要保存资源,还应将新元素的创建放入其中。)