【问题标题】:add an image in listview在列表视图中添加图像
【发布时间】:2011-01-08 19:49:24
【问题描述】:

您好,我想在我的列表视图中添加更多图像,因为下面的代码仅在每一行中连续显示图像 1 和 2。我想要做的是为每个不同的行显示不同的图像。下面是我的代码;

感谢您的帮助。我不擅长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"};

}

【问题讨论】:

    标签: android android-layout android-listview


    【解决方案1】:

    我想做的是为每个不同的行显示不同的图像

    然后在每一行中放置不同的图像。您可以通过getView() 控制每一行的内容。您当前的实现在两个不同的图像之间进行迭代 - 将该逻辑更改为适用于您的应用的任何内容。

    Here is a free excerpt 我的一本书对此进行了更详细的介绍。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-22
      • 2016-04-18
      • 1970-01-01
      相关资源
      最近更新 更多