He creado una vista de lista y he analizado los datos json allí (imagen y algunos textos). Ahora necesito pasar la imagen a la otra actividad al hacer clic, y lo hago como si pasara esos textos por putExtra, y puedo analizar fácilmente los textos allí. Pero, ¿cómo analizo la imagen en la nueva actividad mediante .getExtra (obtengo la cadena pero no puedo analizarla en imageview. Mi código a continuación: Primera actividad:

        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

            Intent intent = new Intent(MainActivity.this, Testic.class);
            String prenos = list.get(position).getEmail();
            String voda = list.get(position).getPhone();
            String name = list.get(position).getName();
            String slika = list.get(position).getImage();
            intent.putExtra("mail", prenos);
            intent.putExtra("voda", voda);
            intent.putExtra("name", name);
            intent.putExtra("slika", slika);
            startActivity(intent);
        }
    });

Segunda actividad:

        TextView probno = (TextView) findViewById(R.id.probno);


    probno.setText(getIntent().getExtras().getString("mail"));

    TextView voda = (TextView) findViewById(R.id.voda);

    voda.setText(getIntent().getExtras().getString("voda"));

    TextView name = (TextView) findViewById(R.id.name);

    name.setText(getIntent().getExtras().getString("name"));

    ImageView slika = (ImageView) findViewById(R.id.slika);

Como puede ver, no he puesto ninguna carpeta para la vista de imagen porque todo lo que puse no funcionó. El descanso funciona bien.

-1
SSS.remi 29 ene. 2016 a las 15:32

4 respuestas

La mejor respuesta

Tu creas el método (solo copia y pega):

    private class DownloadImageTask extends AsyncTask<String, Void, Bitmap> {
    ImageView bmImage;

    public DownloadImageTask(ImageView bmImage) {
        this.bmImage = bmImage;
    }

    protected Bitmap doInBackground(String... urls) {
        String urldisplay = urls[0];
        Bitmap mIcon11 = null;
        try {
            InputStream in = new java.net.URL(urldisplay).openStream();
            mIcon11 = BitmapFactory.decodeStream(in);
        } catch (Exception e) {
            Log.e("Error", e.getMessage());
            e.printStackTrace();
        }
        return mIcon11;
    }

    protected void onPostExecute(Bitmap result) {
        bmImage.setImageBitmap(result);
    }
}

Y luego invocalo onCreate así:

 new DownloadImageTask((ImageView) findViewById(R.id.slika))
            .execute(getIntent().getExtras().getString("slika"));

Y debería funcionar.

1
IDontEvenKnow 29 ene. 2016 a las 13:36

Depende de cuál sea la Cadena que enviaste. Esta es una posibilidad:

Uri uri = Uri.parse(getIntent().getExtras().getString("slika"));
ImageView slika = (ImageView) findViewById(R.id.slika);
slika.setImageURI(uri);

"slika" debe ser una identificación en su formato xml.

0
Gavriel 29 ene. 2016 a las 12:56

Pon la ruta de la imagen en putExtra. No intente enviar información de imagen de mapa de bits o vista de imagen, será pesada.

Puedes hacer así. Guardar ruta de archivo

intent.putExtra("imagePath", filepath); 

Para enviar la imagen a través de la intención y el uso

String image_path = getIntent().getStringExtra("imagePath");
Bitmap bitmap = BitmapFactory.decodeFile(image_path);
myimageview.setImageDrawable(bitmap);
0
Ramchandra Singh 29 ene. 2016 a las 12:46

Para esto, debe usar la biblioteca del cargador de imágenes para cargar sus imágenes en la vista de imágenes como

Cargador de imágenes universal.

Fresco de Facebook etc ..

0
Vishal Patoliya ツ 29 ene. 2016 a las 12:38