2017-11-08 2 views
1

Ich verbrachte drei Tage und fand keine funktionierende Lösung, um Bild in Detailansicht anzuzeigen. Da ich die Suchansicht verwende, muss ich einen schwierigeren Weg verwenden, der nicht funktioniert. Ich verwende Universal Image Loader in ListActivity, habe aber keine Ahnung, wie man es in DetailView implementiert. TextView-Text wird in DetailView korrekt angezeigt. Ich sehe beim Debuggen, URL des Bildes in 'Extras' (oder 'Absicht') in 'mMap' Wert, kann aber nicht angezeigt werden. 'Flag' Variable ist null. 'flagImg' ändert die Bild-URL nicht. Ich habe versucht mit getParacetable, Bitmap, aber ich bekomme immer Null im Flag Wert.Kann Bild (Formular JSON) im Detail Aktivität von Suchresult nicht anzeigen?

ListActivity:

public ListAdapter(Context context, List<MovieModel.Descriptions> items) { 
     this.context = context; 
     this.items = items; 
     inflater = (LayoutInflater.from(context)); 
     this.arrayList = new ArrayList<MovieModel.Descriptions>(); 
     this.arrayList.addAll(items); 
    } 
    view.setOnClickListener(new View.OnClickListener() { 
@Override 
public void onClick(View arg0) { 

     Intent intent = new Intent(context, DetailActivity.class); 
     intent.putExtra("flag",(items.get(position).getImage())); 
     intent.putExtra("getInfo",(items.get(position).getInfo())); 
     context.startActivity(intent); 
     } 
     }); 
     return view; 
     } 

public void filter(String charText){ 
     charText = charText.toLowerCase(Locale.getDefault()); 
     items.clear();; 
     if(charText.length() == 0) { 
     items.addAll(arrayList); 
     }else{ 
     for(MovieModel.Descriptions wp : arrayList){ 
     if(wp.getTitle().toLowerCase(Locale.getDefault()).contains(charText)) 
     items.add(wp); 
     } 
     } 
     notifyDataSetChanged(); 
     } 

im Detail Aktivität

 int flag; 
     int send; 
     // recovering data 
     Intent i = getIntent(); 
     info = i.getStringExtra("getInfo"); 
     detInfo = (TextView)findViewById(R.id.info); 
     detInfo.setText(info); 

     flag = i.getIntExtra("flag", send); 
     flagImg = (ImageView)findViewById(R.id.detailImg); 
     flagImg.setImageResource(flag); 

// Two of 9 solutions I used: 
// bitmap is null 
//  flagImg = (ImageView)findViewById(R.id.detailImg); 
//  Bitmap bitmap = (Bitmap) i.getParcelableExtra("flag"); 
//  flagImg.setImageBitmap(bitmap); 

// bmp is null: 
//  Bundle extras = getIntent().getExtras(); 
//  Bitmap bmp = (Bitmap) extras.getParcelable("flag"); 
//  detImg.setImageBitmap(bmp); 


      // How add this image to Universal Image Loader ? 
      ImageLoader.getInstance().displayImage(flagImg.setImageResource(flag),flagImg, new ImageLoadingListener() {... 
+0

Du mentionig in Ihrem Frage, dass Sie eine URL von Ima wollen, aber wo haben Sie das Bild heruntergeladen? Wenn Sie eine Bild-URL übergeben, erhalten Sie diese in Ihrer 'DetailActivity' als' int' und nicht als 'String'. Wenn Sie eine URL des Bildes haben, müssen Sie dieses Bild herunterladen und zu 'ImageView' gehen. – Yupi

+0

Mehr Code zeigt diesen Beitrag: https://stackoverflow.com/questions/46911971/listview-in-the-first-activity-listview- in-the-second-activity-nested-json-no – Maler

Antwort

1

Ich nehme an, dass Sie so richtig url über Absicht sind vorbei in Ihrem DetailActivity:

String flag; 
flag = i.getStringExtra("flag"); 
flagImg = (ImageView)findViewById(R.id.detailImg); 
ImageLoader imageLoader = ImageLoader.getInstance(); 
imageLoader.displayImage(flag, flagImg); 
+0

Yupi, du bist erstaunlich! Vielen Dank !!! Ich sehe, dass ich nicht wählen kann, weil ich nicht genug Reputationspunkte habe. Aber ich denke, es wird sehr hilfreich für jemanden sein, der das gleiche Problem hat. Um Ihre Antwort zu vervollständigen: Vor der letzten Zeile sollten wir ad: flagImg = (ImageView) findViewById (R.id.detailImg); – Maler

+0

Gern geschehen. Wenn geholfen, können Sie als richtige Antwort markieren. – Yupi

+0

Ich möchte markieren Sie Ihre hilfreiche Antwort, aber ich kann nicht, weil ich 15 Punkte Ruf und ich habe nur 9. Sorry. – Maler