2011-01-08 15 views
0

こんにちはこのコードでは、画像1と画像2が各行に連続して表示されるため、リストビューに画像を追加したいと思います。私がしたいのは、それぞれの行ごとに異なるイメージを表示することです。ここにmycodeがあります。listviewに画像を追加する

ありがとうございました。私はJavaでうまくいきませんコードを必要に応じて変更してくださいし、私はそれを参照することができます。

パブリッククラススタータListActivity {プライベート静的クラスEfficientAdapterがBaseAdapter { プライベートLayoutInflater mInflaterを拡張して延び、 プライベートビットマップmIcon1; プライベートビットマップmIcon2; プライベートビットマップmIcon3; プライベートビットマップmIcon4; プライベートビットマップmIcon5; プライベートビットマップmIcon6; プライベートビットマップmIcon7; プライベートビットマップmIcon8; プライベートビットマップmIcon9; プライベートビットマップmIcon10;

public EfficientAdapter(Context context) { 
     // Cache the LayoutInflate to avoid asking for a new one each time. 
     mInflater = LayoutInflater.from(context); 

     // Icons bound to the rows. 
     mIcon1 = BitmapFactory.decodeResource(context.getResources(), R.drawable.starters1); 
     mIcon2 = BitmapFactory.decodeResource(context.getResources(), R.drawable.starters2); 
     mIcon3 = BitmapFactory.decodeResource(context.getResources(), R.drawable.starters3); 
     mIcon4 = BitmapFactory.decodeResource(context.getResources(), R.drawable.starters4); 
     mIcon5 = BitmapFactory.decodeResource(context.getResources(), R.drawable.starters5); 
     mIcon6 = BitmapFactory.decodeResource(context.getResources(), R.drawable.starters6); 
     mIcon7 = BitmapFactory.decodeResource(context.getResources(), R.drawable.starters7); 
     mIcon8 = BitmapFactory.decodeResource(context.getResources(), R.drawable.starters8); 
     mIcon9 = BitmapFactory.decodeResource(context.getResources(), R.drawable.starters9); 
     mIcon10 = BitmapFactory.decodeResource(context.getResources(), R.drawable.starters10); 
    } 

    public int getCount() { 
     return DATA.length; 
    } 

    public Object getItem(int position) { 
     return position; 
    } 

    public long getItemId(int position) { 
     return position; 
    } 

    public View getView(int position, View convertView, ViewGroup parent) { 
     // A ViewHolder keeps references to children views to avoid unneccessary calls 
     // to findViewById() on each row. 
     ViewHolder holder; 

     // When convertView is not null, we can reuse it directly, there is no need 
     // to reinflate it. We only inflate a new View when the convertView supplied 
     // by ListView is null. 
     if (convertView == null) { 
      convertView = mInflater.inflate(R.layout.starters, null); 

      // Creates a ViewHolder and store references to the two children views 
      // we want to bind data to. 
      holder = new ViewHolder(); 

      holder.text = (TextView) convertView.findViewById(R.id.text01); 
      holder.text = (TextView) convertView.findViewById(R.id.secondLine); 
      holder.icon = (ImageView) convertView.findViewById(R.id.icon01); 

      convertView.setTag(holder); 
     } else { 
      // Get the ViewHolder back to get fast access to the TextView 
      // and the ImageView. 
      holder = (ViewHolder) convertView.getTag(); 
     } 

     // Bind the data efficiently with the holder. 
     holder.text.setText(DATA[position]); 
     holder.icon.setImageBitmap((position & 1) ==1 ? mIcon1 : mIcon2); 


     return convertView; 
    } 

    static class ViewHolder { 
     TextView text; 
     ImageView icon; 
    } 
} 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setListAdapter(new EfficientAdapter(this)); 
} 

private static final String[] DATA = { 
    "Original nachos", "Toasted chicken and cheese quesadillas", "Chicken, lime and coriander nachos", 
    "Spicy bean and cheese quesadillas", "Tuna and corn quesadillas", "Cheesy bean and sweetcorn nachos", "Crispy chicken, avocado and lime salad", "Beef and baby corn tostada", 
    "Spicy mexican rice with chicken and prawns", "Chilli potato boats"}; 

}

答えて

1

私は何をしたいその後、各行に異なる画像を入れ

にそれぞれ異なる行に異なる画像を表示します。 getView()を介して各行に何が入るかを制御できます。現在の実装では、2つの異なるイメージ間で反復処理が行われます。つまり、ロジックをアプリケーションに適したものに変更します。

Here is a free excerptこの詳細については、私の書籍の1つから。

関連する問題