Canot在片段中创建ArrayListAdapter

时间:2018-12-03 13:32:33

标签: java android android-fragments

我创建了一个自定义适配器,以在片段视图中显示“警报”对象列表。我看了多篇文章和教程,我认为我终于明白了。我使适配器的构造函数采用了ArrayArray of Alarms。但是,当我尝试在片段中创建适配器时,会收到消息

  

AdapterAlarm(Context,java.util.ArrayList com.runners.spo.Alarm>)在   适配器警报无法应用于(FragmentActivity,   java.util.List com.runners.spo.Alarm>)

我的适配器如下:

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;
    }

我正在尝试使用片段内部的适配器。

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);
        ...

我对如何处理此问题一无所知。我不确定列表有什么问题。

1 个答案:

答案 0 :(得分:1)

您的AdapterAlarm类期望一个ArrayList<Alarm>,但是您只给它一个List<Alarm>。 这就是错误消息的内容。