Java 无法在片段中创建ArrayListAdapter
我创建了一个自定义适配器,用于在片段视图中显示报警对象列表。我看了很多文章和教程,我想我终于弄对了。我让我的适配器构造函数获取一个警报数组列表。然而,当我尝试在片段内部创建适配器时,我得到了消息 中的AdapterArm(上下文,java.util.ArrayList com.runners.spo.Alarm>) 适配器警报无法应用于(碎片活动, java.util.List com.runners.spo.Alarm>) 我的适配器看起来像:Java 无法在片段中创建ArrayListAdapter,java,android,android-fragments,Java,Android,Android Fragments,我创建了一个自定义适配器,用于在片段视图中显示报警对象列表。我看了很多文章和教程,我想我终于弄对了。我让我的适配器构造函数获取一个警报数组列表。然而,当我尝试在片段内部创建适配器时,我得到了消息 中的AdapterArm(上下文,java.util.ArrayList com.runners.spo.Alarm>) 适配器警报无法应用于(碎片活动, java.util.List com.runners.spo.Alarm>) 我的适配器看起来像: public class AdapterAlar
public class AdapterAlarm extends ArrayAdapter<Alarm> {
public AdapterAlarm(Context context, ArrayList<Alarm> alarms) {
super(context, R.layout.alarm_item, alarms);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater layout = LayoutInflater.from(getContext());
View customview = layout.inflate(R.layout.alarm_item, parent, false);
String name = getItem(position).name;
...
TextView updatename = (TextView)customview.findViewById(R.id.name);
...
updatename.setText(name);
...
return customview;
}
公共类适配器Arm扩展ArrayAdapter{
公共适配器ARM(上下文、ArrayList报警){
超级(上下文、右布局、报警项、报警);
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
LayoutInflater布局=LayoutInflater.from(getContext());
View customview=布局。充气(R.layout.alarm\u项,父项,false);
字符串名称=getItem(position).name;
...
TextView updatename=(TextView)customview.findViewById(R.id.name);
...
updatename.setText(名称);
...
返回自定义视图;
}
我试图在片段内部使用适配器
private List<Alarm> alarms = new ArrayList<Alarm>();
private AdapterAlarm alarmAdapter;
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_alarm, container, false);
//this or getActivity()
//problem is here
alarmAdapter = new AdapterAlarm(this, alarms);
...
private List alarms=new ArrayList();
专用适配器ARM报警适配器;
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
视图=充气机。充气(R.layout.fragment_报警,容器,错误);
//此活动或getActivity()
//问题就在这里
alarmAdapter=新适配器ARM(此为报警);
...
我完全不知道如何处理这个问题。我不确定列表有什么问题。您的AdapterArm类需要一个
数组列表
,但您只给它一个列表
。
这就是错误消息所说的。报警是您的pojo类,然后pl更改name@AndroidTeam,您所说的“pl更改名称”是什么意思?我知道Alarm是我的pojo,我正在创建一个Alarm对象列表,但我应该更改的名称是什么?如果您获得pojo类extact,那么只更改它。更改此内容alarmAdapter=new AdapterArm(getActivity(),alarms);