预定位值赋给的ImageView [英] Assign the Intended bitmap value to an imageView

查看:179
本文介绍了预定位值赋给的ImageView的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用一个适配器来加载的项目的网格。然后,当用户从网格中选择一个项目,然后它打开了定制画面。在这个过程中,我在意向发送一些数据,稍后我可以加载这些在定制屏幕。我成功加载了比 isVeg 项目以外的其他项目。响应I'mgetting为 isVeg [假的,真的,假的,假的,真的,真的,真的,真的,真的,真的,真的,真的,真的,真的,真的,真的,真的,真的,真的]

我的问题是我已经intented的方式是否正确。如果它是正确的我怎样才能将其分配给ImageView的。

使用将数​​据发送到下一个acitivty适配器即时

  @覆盖
公共查看getView(最终诠释的立场,观点convertView,父母的ViewGroup){
    ViewHolder持有人;
    如果(convertView == NULL){
        持有人=新ViewHolder();
        convertView = LayoutInflater.from(上下文).inflate(
                R.layout.pasta_single_item,父母,假);
        holder.ivImage =(ImageView的)convertView
                .findViewById(R.id.grid_image);
        holder.tvImageIcon =(ImageView的)convertView
                .findViewById(R.id.icon);
        holder.tvHeader =(TextView中)convertView
                .findViewById(R.id.grid_text);
        convertView.setTag(保持器);    }其他{
        支架=(ViewHolder)convertView.getTag();
    }
    holder.tvHeader.setText(descriptions.get(位置));
    Picasso.with(this.context).load(imageUrls.get(位置))
            .into(holder.ivImage);    最后弦乐strIsVag = isVeg.get(位置);
    最后的位图mBitmap;
    如果(strIsVag.contains(真)){
            mBitmap = BitmapFactory.de codeResource(
                                  this.context.getResources(),R.drawable.veg);
        }其他{
            mBitmap = BitmapFactory.de codeResource(
                               this.context.getResources(),R.drawable.nonveg);
    }    holder.tvImageIcon.setImageBitmap(mBitmap);    按钮customizePasta =(按钮)convertView
            .findViewById(R.id.bt_direct_customize);
    customizePasta.setOnClickListener(新View.OnClickListener(){
        @覆盖
        公共无效的onClick(查看视图){
            接下来意向=新意图(背景下,ActivityPastaCustomize.class);
            next.putExtra(说明,descriptions.get(位置));
            next.putExtra(图片网址,imageUrls.get(位置));
            next.putExtra(价格,price.get(位置));
            next.putExtra(isVeg,mBitmap); //为意向所选项目的形象
            context.startActivity(下);
            ((活动)上下文).overridePendingTransition(
                    R.anim.slide_in_right,R.anim.slide_out_left);
        }
    });    返回convertView;
}私有类ViewHolder {
    私人TextView的tvHeader;
    私人ImageView的ivImage;
    私人ImageView的tvImageIcon;
}

}

在活动接收数据

 最终字符串描述= getIntent()getStringExtra(说明)。
        串图片网址= getIntent()getStringExtra(图片网址);
        最后弦乐Strprice = getIntent()getStringExtra(价格)。
        串mBitmap = getIntent()getStringExtra(isVeg); //收到
项目

设置recivied数据

 最后的TextView descriptionTV =(的TextView)findViewById(R.id.grid_text);
        descriptionTV.setText(介绍);        最终的TextView priceTV =(的TextView)findViewById(R.id.pasta_price);
        priceTV.setText(价格RS+ Strprice);        ImageView的ImageView的=(ImageView的)findViewById(R.id.grid_image);
        Picasso.with(本).load(图片网址).into(ImageView的);


解决方案
相反意图发送位图的

发送继 getView 修改绘制id.make方式:

1 获得 isVeg 选择字符串列表:

  @覆盖
    公共无效的onClick(查看视图){
        ...
        next.putExtra(isVeg,isVeg.get(位置));
        context.startActivity(下);
        ....
    }

2 接收活动数据 isVeg 为字符串:

 字符串strIsVag = getIntent()getStringExtra(isVeg);

3,根据strIsVag :设置图片为ImageView的:

 位图mBitmap;
    如果(strIsVag.contains(真)){
            mBitmap = BitmapFactory.de codeResource(
                                  this.getResources(),R.drawable.veg);
        }其他{
            mBitmap = BitmapFactory.de codeResource(
                               this.getResources(),R.drawable.nonveg);
    }
   ImageView的ImageView的=(ImageView的)findViewById(R.id.grid_image);
   imageView.setImageBitmap(mBitmap);

I'm using an adapter to load the items to a grid. then when the user select an item from the grid then it opens up the customizing screen. In that process I'm sending some data in the intent and later I can load the these in the customizing screen. Successfully I have loaded the other items other than the isVeg item. Response I'mgetting for isVeg , [false, true, false, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true] .

My problem is the way I have intented is correct or not. If it is correct how can I assign it to a ImageView.

adapter im using to send the data to next acitivty

@Override
public View getView(final int position, View convertView, ViewGroup parent) {
    ViewHolder holder;
    if (convertView == null) {
        holder = new ViewHolder();
        convertView = LayoutInflater.from(context).inflate(
                R.layout.pasta_single_item, parent, false);
        holder.ivImage = (ImageView) convertView
                .findViewById(R.id.grid_image);
        holder.tvImageIcon = (ImageView) convertView
                .findViewById(R.id.icon);
        holder.tvHeader = (TextView) convertView
                .findViewById(R.id.grid_text);
        convertView.setTag(holder);

    } else {
        holder = (ViewHolder) convertView.getTag();
    }
    holder.tvHeader.setText(descriptions.get(position));
    Picasso.with(this.context).load(imageUrls.get(position))
            .into(holder.ivImage);

    final String strIsVag=isVeg.get(position);
    final Bitmap mBitmap; 
    if (strIsVag.contains("true")) {
            mBitmap = BitmapFactory.decodeResource(
                                  this.context.getResources(), R.drawable.veg);
        } else {
            mBitmap = BitmapFactory.decodeResource(
                               this.context.getResources(), R.drawable.nonveg);
    }

    holder.tvImageIcon.setImageBitmap(mBitmap);

    Button customizePasta = (Button) convertView
            .findViewById(R.id.bt_direct_customize);
    customizePasta.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent next = new Intent(context, ActivityPastaCustomize.class);
            next.putExtra("description", descriptions.get(position));
            next.putExtra("imageUrl", imageUrls.get(position));
            next.putExtra("price", price.get(position));
            next.putExtra("isVeg", mBitmap);  //intent the image for selected item
            context.startActivity(next);
            ((Activity) context).overridePendingTransition(
                    R.anim.slide_in_right, R.anim.slide_out_left);
        }
    });

    return convertView;
}

private class ViewHolder {
    private TextView tvHeader;
    private ImageView ivImage;
    private ImageView tvImageIcon;
}

}

receiving the data in activity

        final String description = getIntent().getStringExtra("description");
        String imageUrl = getIntent().getStringExtra("imageUrl");
        final String Strprice = getIntent().getStringExtra("price");
        String mBitmap = getIntent().getStringExtra("isVeg"); // recives the item 

setting the recivied data

        final TextView descriptionTV = (TextView) findViewById(R.id.grid_text);
        descriptionTV.setText(description);

        final TextView priceTV = (TextView) findViewById(R.id.pasta_price);
        priceTV.setText("PRICE RS " + Strprice);

        ImageView imageView = (ImageView) findViewById(R.id.grid_image);
        Picasso.with(this).load(imageUrl).into(imageView);

解决方案

Instead of sending Bitmap with intent send drawable id.make following changes in getView method:

1. Get selected String from isVeg List:

    @Override
    public void onClick(View view) { 
        ...
        next.putExtra("isVeg", isVeg.get(position));  
        context.startActivity(next);
        ....
    }

2. Receive data in activity isVeg as String:

String strIsVag = getIntent().getStringExtra("isVeg"); 

3. Set Image to ImageView according to strIsVag :

    Bitmap mBitmap; 
    if (strIsVag.contains("true")) {
            mBitmap = BitmapFactory.decodeResource(
                                  this.getResources(), R.drawable.veg);
        } else {
            mBitmap = BitmapFactory.decodeResource(
                               this.getResources(), R.drawable.nonveg);
    }
   ImageView imageView = (ImageView) findViewById(R.id.grid_image);
   imageView.setImageBitmap(mBitmap);

这篇关于预定位值赋给的ImageView的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆