2016-09-03 1 views
-5

Wie soll ich eine ArrayList> zum Hinzufügen von Textdaten und Bildern verwenden?Wie verwende ich eine ArrayList <HashMap <String, String >> zum Hinzufügen von Textdaten und Bildern?

//first activity 
persons = new HashMap<String,String>(); 
        persons.put("teacher_name", TEACHER_NAME);//TEACHER_NAME is JSON response 
        persons.put("course_name", COURSE_NAME);//COURSE_NAME JSON response 
        persons.put("subject_name", SUBJECT_NAME);//SUBJECT_NAME JSON response 
        persons.put("profileimage", PROFILE_IMAGE);//PROFILE_IMAGE JSON response 
        personList.add(persons); //personList is an arrayList 
i.putExtra("teachersAL", personList); // Intent to another activity 

//Second class 

teachername = getIntent().getStringExtra("teacher_name"); 
       coursename = getIntent().getStringExtra("course_name"); 
       subjectname = getIntent().getStringExtra("subject_name"); 
       profileimage = getIntent().getStringExtra("profileimage"); 

adapter = new SimpleAdapter(//MainHome is Second class's name 
         MainHome.this, personList, R.layout.mainhome, 
         new String[]{teachername,coursename,subjectname,profileimage}, 
         new int[]{R.id.teachername, R.id.coursename, R.id.subjectname, R.id.profileimage} 
       ); 
       list.setAdapter(adapter); 

Hier ist mir die URL der Bildaufnahme, aber ich mag zusammen mit den anderen Daten zu meiner Arraylist, um das Bild hinzuzufügen, so dass ich es die Ansichten leicht mit einem SimpleAdapter passieren kann.

Wie kann ich das erreichen?
Mache ich das Richtige oder sollte ich mich für einen anderen Weg entscheiden?

+0

Sie könnten zum Beispiel Ihr Bild in eine Base64 'String' kodieren. Oder verwenden Sie stattdessen 'HashMap '. – earthw0rmjim

+0

versuchen Sie dies [http://stackoverflow.com/questions/34564862/how-do-you-add-images-beside-text-in-a-arraylist-in-android](http://stackoverflow.com/questions/34564862/how-do-you-add-Bilder-neben-Text-in-einem-arraylist-in-android) Ich denke, es hilft Ihnen – Reenu

+0

Danke für die Antwort Jungs! Ich werde diese Sachen ausprobieren. – Sumit

Antwort

0

Sie benötigen eine Bitmap Base64-String zu kodieren Hier Code für die Codierung ist:

können Sie Benutzer Base64 Klasse so zu tun,

String encodedImage = Base64.encodeToString(byteArrayImage, Base64.DEFAULT); // Add this string to your HasMap. 

Aber, müssen bytearray Sie aber ,

Sie können Ihre Base64 mit einigen anderen integrierten Methoden verwenden.

byte[] decodedString = Base64.decode(encodedImage, Base64.DEFAULT); 
Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length); 

Glückliche Kodierung !!

+0

Danke Kumpel! Ich kann alle Daten eines einzelnen Benutzers auf meiner Benutzeroberfläche anzeigen. Wenn ich also * wähle, erhalte ich nur Daten eines einzelnen Benutzers. Ich möchte mehrere Benutzerdaten auf meiner Benutzeroberfläche anzeigen. Also, wie mache ich das? Bitte hilf mir! – Sumit

+0

Sie können List > verwenden, um mehrere Benutzerdaten zu speichern. – Wizard

+0

Ich bin genau das Gleiche! Aber wie füge ich ein Bild auf diese Liste/Arraylist – Sumit

0

können Sie speichern den Link des Bildes im HashMap als:

list.add(new HashMap("imageUrl"," your image url")); 

Konvertieren des Bildes in ByteArray und als Bild speichern wird nicht empfohlen, da es eine Menge Speicher und Verarbeitung stattfindet.

Wenn das Bild auf einem Server ist, können Sie Glide oder Picasso verwenden sie leicht in Ihre App laden wie:

Glide.with(this).load(imageUrl).into(yourImageView); 
Picasso.with(this).load(imageUrl).into(yourImageView); 

Oder wenn Sie Ihre Bilder in der SD-Karte haben, dann können Sie einen bestimmten Ordner Ziel wie:

File imgFile = new File(imageUrl); 

if(imgFile.exists()){ 
Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath()); 
ImageView myImage = (ImageView) findViewById(R.id.imageviewTest); 
myImage.setImageBitmap(myBitmap); 
} 
+0

Ich verwende SimpleAdapter, um die Daten direkt in mein Layout einzufügen.Also, wenn ich URL auf meiner Arraylist speichern, wie kann ich die Daten auf meinem Android UI anzeigen – Sumit

+0

Danke mate! Ich kann alle Daten eines einzelnen Benutzers auf meiner Benutzeroberfläche anzeigen. Wenn ich also * wähle, erhalte ich nur Daten eines einzelnen Benutzers. Ich möchte mehrere Benutzerdaten auf meiner Benutzeroberfläche anzeigen. Also, wie mache ich das? Bitte hilf mir! – Sumit

+0

sollten Sie Ihren Code in der Frage posten, sonst wird es sehr schwer, Ihnen zu helfen. –

Verwandte Themen