2011-01-08 152 views
0

嗨我想在我的列表視圖中添加更多圖像,因爲下面的代碼僅在每行中連續顯示圖像1和2。我想要做的是爲每個不同的行顯示不同的圖像。下面是mycode。在列表視圖中添加圖像

感謝您的任何幫助。我不擅長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()控制每行中的內容。您當前的實現在兩個不同的圖像之間進行迭代 - 將該邏輯更改爲適用於您的應用的任何內容。

Here is a free excerpt從我的一本書中可以看到更詳細的內容。