перенос изображения из activity в класс адаптера

#java #android

#java #Android

Вопрос:

Это моя деятельность A

 case R.id.buttonSaveAdd:
        EditText editTextTitle = (EditText) findViewById(R.id.editTextTitle);
        EditText editTextDes = (EditText) findViewById(R.id.editTextDescription);
        EditText editTextOwner = (EditText) findViewById(R.id.editTextOwnerName);
        EditText editTextOwnerEmail = (EditText) findViewById(R.id.editTextOwnerEmail);
        EditText editTextPrice = (EditText) findViewById(R.id.editTextPrice);

        //populating data object from the values received 
        //from view
        String title = editTextTitle.getText().toString(); 
        String description = editTextDes.getText().toString();
        String ownerName = editTextOwner.getText().toString();
        String ownerEmail = editTextOwnerEmail.getText().toString();
        String pricce = editTextPrice.getText().toString();
        Advertisement  object = new Advertisement(title, description,
                ownerName, ownerEmail, "ic_launcher", Integer.parseInt(pricce), 100);
        Button_mak.ads.add(object);

        this.finish();
        break;

    }
}
   @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        if (requestCode == RESULT_LOAD_IMAGE amp;amp; resultCode == RESULT_OK amp;amp; null != data) {
            Uri selectedImage = data.getData();
            String[] filePathColumn = { MediaStore.Images.Media.DATA };

            Cursor cursor = getContentResolver().query(selectedImage,
                    filePathColumn, null, null, null);
            cursor.moveToFirst();

            int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
            String picturePath = cursor.getString(columnIndex);
            cursor.close();

            ImageView imageView10 = (ImageView) findViewById(R.id.creatae);
            imageView10.setImageBitmap(BitmapFactory.decodeFile(picturePath));
            //// I want to send this image to my adapter class.
 

Это мой класс адаптера

 public class MyAdapter extends ArrayAdapter<Advertisement> implements OnClickListener {
public static int totalBill = 0;
private final Context context;
private final Advertisement[] values;

public MyAdapter(Context context, Advertisement[] values) {
    super(context, R.layout.single_adds_layout, values);
    this.context = context;
    this.values = values;

}

@Override
public View getView(int position, View convertView, ViewGroup parent) {

    LayoutInflater inflater = (LayoutInflater) context
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);


    View rowView = inflater.inflate(R.layout.single_adds_layout, parent, false);
    TextView title = (TextView) rowView.findViewById(R.id.title);
    TextView detailedMessage = (TextView) rowView.findViewById(R.id.detailed_message);
    TextView ownerName = (TextView) rowView.findViewById(R.id.owner);
    TextView ownerEmail = (TextView) rowView.findViewById(R.id.owner_email);
    TextView price = (TextView) rowView.findViewById(R.id.price);
    ImageView image = (ImageView) rowView.findViewById(R.id.imageView10);
    Button btn33 = (Button) rowView.findViewById(R.id.buybutton);
    btn33.setOnClickListener(this);

    Advertisement dataObj = values[position];
    title.setText(dataObj.getTitle());
    detailedMessage.setText(dataObj.getDetailedMessage());
    ownerName.setText(dataObj.getOwnerName());
    ownerEmail.setText(dataObj.getOwnerEmail());
    price.setText(String.valueOf(dataObj.getPrice()));
    btn33.setTag(price.getText());
    setDrawable(image, dataObj.getImageId());

    return rowView;

}

private void setDrawable(ImageView image, String drawableName) {
    AssetManager manager = image.getContext().getAssets();

    // Read a Bitmap from Assets
    InputStream open = null;
    try {
        open = manager.open(drawableName ".jpg");
        Bitmap bitmap = BitmapFactory.decodeStream(open);
        // Assign the bitmap to an ImageView in this layout
        image.setImageBitmap(bitmap);
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        if (open != null) {
            try {
                open.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    } 
}
@Override
public void onClick(View v) {

    String value = (String) v.getTag();
    int valueInt = Integer.parseInt(value);
    MyAdapter.totalBill = valueInt;


}
 

Здесь, в первом действии, я загружаю изображение из камбуза. Когда я нажимаю на кнопку сохранения в своем Activity A, я хочу, чтобы он отправил изображение и передал его в мой класс адаптера

Ответ №1:

Создайте метод setImage в адаптере для bitmap, нажав кнопку save, вызовите метод adapter.setImage и передайте это изображение и сохраните его в адаптере. Вызовите notifyDataSetChanged() адаптера, чтобы обновить набор данных.

Комментарии:

1. хорошо, но, Мехул, ты объяснишь это более подробно, или ты можешь прислать мне ссылку, по которой я могу ее получить