1

インターネットからのテキストと画像を解析して、に表示するアプリケーションを作成していますListView。これは正常に機能します。

の各行でListView、の可視性の値ImageViewがあります。GONE

ImageViewXML解析のフィールドの値が「yes」の場合、の可視性をに設定しようとしています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の「はい」と一致しません。

私は何が間違っているのですか?私はあなたの助けに感謝します。

よろしく

4

2 に答える 2

2

if 条件にもelse部分を追加するだけで、

if(isHome.equals("yes")) {
  home.setVisibility(View.VISIBLE);
  Log.i("looking",”home visible”);
}
else
{
  home.setVisibility(View.GONE);
  Log.i("looking",”home gone”);
}

これを試して、何が起こるか教えてください..

于 2012-09-19T18:08:19.647 に答える
0

"yes"状態と状態の両方を設定する必要があり"no"ます。そうしないと、行が再利用されるため、以前の「はい」がオフになることはありません。(Android の Romain Guy がアダプターとgetView()の効率について話しているのを見てください)

if(isHome.equals("yes")) {
    home.setVisibility(View.VISIBLE);
    Log.i("looking",”home visible”);
}
else {
    home.setVisibility(View.GONE);
} 
于 2012-09-19T18:09:01.570 に答える