我正在创建一个解析来自Internet的文本和图像的应用程序,并将其显示在ListView
中。这很好。
在ListView
的每一行中,ImageView
都有GONE
种可见度值。
我正在尝试,如果XML解析字段的值为“是”,请将ImageView
的可见性设置为VISIBLE
。
public class MinAdapterSuscr extends BaseAdapter {
//...
public View getView(int position, View convertView, ViewGroup parent)
{
View vi=convertView;
if(convertView==null)
vi = inflater.inflate(R.layout.list_row_my_nets, null);
TextView title = (TextView)vi.findViewById(R.id.title);
TextView net = (TextView)vi.findViewById(R.id.net);
ImageView home = (ImageView)vi.findViewById(R.id.enthome);
ImageView thumb_image=(ImageView)vi.findViewById(R.id.image);
HashMap<String, String> onets = new HashMap<String, String>();
onets = data.get(position);
// añadiendo los valores al listview
title.setText(android.text.Html.fromHtml(onets.get(netsActivity.KEY_NOMBRE_RED_SUSCR)));
artist.setText(android.text.Html.fromHtml(onets.get(netsActivity.KEY_DESCR_RED_SUSCR)));
nuevasEntradas.setText(android.text.Html.fromHtml(onets.get(netsActivity.KEY_POR_VER_SUSCR)));
String isHome = onets.get(netsActivity.KEY_ES_INICIO_SUSCR);
imageLoader.DisplayImage(song.get(netsActivity.KEY_AVATAR_RED_SUSCR), thumb_image);
// Comprobación de si es red propia o de inicio
if(isHome.equals("yes")) {
home.setVisibility(View.VISIBLE);
Log.i("looking",”home visible”);
}
return vi;
}
}
这样可行,但它显示的结果似乎是随机的。有时ImageView
是可见的,有时不可见,但与XML的“是”不匹配。
我做错了什么?感谢您的帮助。
此致
答案 0 :(得分:2)
如果条件,只需在
if(isHome.equals("yes")) {
home.setVisibility(View.VISIBLE);
Log.i("looking",”home visible”);
}
else
{
home.setVisibility(View.GONE);
Log.i("looking",”home gone”);
}
试试这个,让我知道发生了什么......
答案 1 :(得分:0)
您需要同时设置"yes"
和"no"
状态,否则之前的“yesses”永远不会被关闭,因为行会被回收。 (请观看Android的Romain Guy与adapters and getView()
)讨论效率
if(isHome.equals("yes")) {
home.setVisibility(View.VISIBLE);
Log.i("looking",”home visible”);
}
else {
home.setVisibility(View.GONE);
}