Java 从自定义对象的Arraylist创建BaseAdapter
我正在构建一个SMS应用程序,并在列表视图中显示对话流量我的数据将被注册到消息的数组列表中,我创建了一个类来引用我的应用程序的SMS消息项 出于测试目的,我制作了以下适配器:Java 从自定义对象的Arraylist创建BaseAdapter,java,android,arraylist,adapter,baseadapter,Java,Android,Arraylist,Adapter,Baseadapter,我正在构建一个SMS应用程序,并在列表视图中显示对话流量我的数据将被注册到消息的数组列表中,我创建了一个类来引用我的应用程序的SMS消息项 出于测试目的,我制作了以下适配器: package fr.nf.smsplus; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import androi
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;
}
}
以下是我所做工作的输出:
我的适配器正在工作。但是我现在需要在适配器的getView中选择要使用的气泡,因此我不能使用ArrayAdapter。我必须自己制作适配器
因此我需要将所有内容转换为消息的ArrayList而不是Array,以便为数组动态分配ressource
如何修改适配器以正确使用消息的ArrayList,从而在listview中应用它?包fr.nf.smsplus;
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;
ArrayList<Message> conv;
private static LayoutInflater inflater = null;
public conversationAdapter(Context context, ArrayList<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.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return conv.get(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
Message mMessage=conv.get(position);
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(mMessage.content);
return vi;
}
}
导入android.content.Context;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.BaseAdapter;
导入android.widget.TextView;
导入java.util.List;
/**
*由Nicolas于2016年5月20日创建。
*/
公共类conversationAdapter扩展了BaseAdapter{
语境;
ArrayList conv;
专用静态充气机=空;
公共会话适配器(上下文,ArrayList conv){
//TODO自动生成的构造函数存根
this.context=上下文;
this.conv=conv;
充气器=(LayoutFlater)context.getSystemService(context.LAYOUT\u充气器\u服务);
}
@凌驾
public int getCount(){
//TODO自动生成的方法存根
返回conv.size();
}
@凌驾
公共对象getItem(int位置){
//TODO自动生成的方法存根
返回conv.get(位置);
}
@凌驾
公共长getItemId(int位置){
//TODO自动生成的方法存根
返回位置;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
//TODO自动生成的方法存根
消息mMessage=conv.get(位置);
视图vi=转换视图;
如果(vi==null)
vi=充气机。充气(R.布局。项目编号,空);
TextView text=(TextView)vi.findViewById(R.id.txtMsg);
text.setText(mMessage.content);
返回vi;
}
}
注意:尝试使用,这将提高应用程序的性能。