0

私のアプリでは、上部に1つの画像があり、その下に名前のリストがあるページを表示したいと思います。画像は画面の80%をカバーしている可能性があります。画像ビューまたはリストビューのいずれにも、高さを指定したくありません。

私は次の方法で試しました、私は2つの配列リストを持っています。1つの配列には、画像のURLと、次のように表示されるもう1つのテキストが含まれています。

array 1 = ["http://....","A","B","C","D"......]

次の配列には、次のように0と1が含まれます

array 2 = [0,1,1,1,1.......]

以下は私のリストビューコードです

public class listViewHolder 
            {
                ImageView product_hold_image;
                TextView product_hold_subHeading;
            }
            public View getView(final int position, View convertView, ViewGroup parent) 
            {
                listViewHolder holder = null;
                try 
                {
                    if (convertView == null) 
                    {
                        convertView = mLayoutInflater.inflate(R.layout.lst_ly, null);           
                        holder = new listViewHolder();
                        holder.product_hold_image      = (ImageView)convertView.findViewById(R.id.imageView1);
                        holder.product_hold_subHeading = (TextView)convertView.findViewById(R.id.lst_textView1);

                        convertView.setTag(holder);
                    } 
                    else 
                    {
                        holder = (listViewHolder) convertView.getTag();
                    }
                    if(data.get(position).contains("0"))
                    {
                        img = data_phonetxt.get(position).toString();           
                        img = img.replaceAll(" ","%20");        

                        Drawable drawable = LoadImageFromWebOperations(img);
                        holder.product_hold_image.setImageDrawable(drawable);
                    }
                    populateListData(holder, position);
                    notifyDataSetChanged();
                } 
                catch (Exception e) 
                {
                    Log.e("list view holder - error: ",""+e);  
                }
                return convertView;
            }
            public void populateListData(listViewHolder viewHolder, int position) 
            {   
                if(data.get(position).contains("1"))
                {
                    Log.e("data.get(position).contains(0) ","is false");
                    viewHolder.product_hold_image.setVisibility(View.GONE);
                    viewHolder.product_hold_subHeading.setText(data_phonetxt.get(position).toString());
                }
                else if(data.get(position).contains("0"))
                {
                    img = data_phonetxt.get(0).toString();          
                    img = img.replaceAll(" ","%20");        

                    Drawable drawable = LoadImageFromWebOperations(img);
                    viewHolder.product_hold_image.setImageDrawable(drawable);
                }
            }

上記のコードによると、初めて画像を上に表示し、その下にすべてのテキストを表示するために使用しますが、リストビューを上から下にスクロールし、再び上に移動すると、画像はテキストに置き換えられます、

これを取得する他の簡単な方法、提案はありますか?

4

1 に答える 1

0

ListActivity で別のビューを使用して解決策を取得します。

別のビューを画像ビューとして使用し、リストビューのヘッダーに画像ビューを追加します

localListView = getListView();
                    LayoutInflater localLayoutInflater = (LayoutInflater)getSystemService("layout_inflater");
                    View localView1 = localLayoutInflater.inflate(R.layout.img1, localListView, false);
                    this.mImageView = ((ImageView)localView1.findViewById(R.id.imageView1));

                    localListView.addHeaderView(localView1, null, false);
                    localListView.setCacheColorHint(0);
于 2012-05-24T13:01:10.923 に答える