Ich baue eine SMS-App und um eine Konversation Fluss in einer Listview anzuzeigen. Meine Daten werden in einer ArrayList der Nachricht registriert, einer Klasse, die ich erstellt habe, um auf ein SMS-Nachrichtenelement für meine App zu verweisen.Erstellen Sie einen BaseAdapter von Arraylist des benutzerdefinierten Objekts
Für Testzwecke, habe ich diesen Adapter gemacht:
package fr.nf.smsplus;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import java.util.List;
/**
* Created by Nicolas on 20/05/2016.
*/
public class conversationAdapter extends BaseAdapter {
Context context;
Message[] conv;
private static LayoutInflater inflater = null;
public conversationAdapter(Context context, Message[] conv) {
// TODO Auto-generated constructor stub
this.context = context;
this.conv = conv;
inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return conv.length;
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return conv[position];
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
View vi = convertView;
if (vi == null)
vi = inflater.inflate(R.layout.item_bubble_me, null);
TextView text = (TextView) vi.findViewById(R.id.txtMsg);
text.setText(conv[position].content);
return vi;
}
}
Hier ist die Ausgabe von dem, was ich gemacht habe:
Mein Adapter funktioniert. Aber ich muss jetzt auswählen, welche Blase im getView meines Adapters verwendet werden soll, also kann ich den ArrayAdapter nicht verwenden. Ich werde meinen eigenen Adapter machen müssen.
Also Ich muss alles in eine ArrayList der Nachricht anstelle von Array konvertieren, um eine dynamische Zuordnung der Ressource für das Array zu machen.
Wie kann ich meinen Adapter ändern, um ArrayList of Message korrekt zu verwenden, um es in einem Listview anzuwenden?
Werde das sehen, danke –