Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 片段的自定义listadapter_Java_Android - Fatal编程技术网

Java 片段的自定义listadapter

Java 片段的自定义listadapter,java,android,Java,Android,我正在尝试制作一个自定义列表适配器,但它说我不能使用它 ListFragment.setListAdapter(cafeItemArrayAdapter); 因为:无法从静态上下文引用非静态方法 这是我的.java文件 package swinnen.jente.mijnapp; /** * Created by jenteswinnen on 10/01/16. */ import android.app.ListFragment; import android.os.Bundle;

我正在尝试制作一个自定义列表适配器,但它说我不能使用它

ListFragment.setListAdapter(cafeItemArrayAdapter);
因为:无法从静态上下文引用非静态方法

这是我的.java文件

package swinnen.jente.mijnapp;

/**
 * Created by jenteswinnen on 10/01/16.
 */
import android.app.ListFragment;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

import Model.Cafe;


public class TwoFragment extends ListFragment {

    ArrayAdapter cafeItemArrayAdapter;

    public TwoFragment() {

    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        return inflater.inflate(R.layout.fragment_two, container, false);

        cafeItemArrayAdapter = new CafeAdapter(this, cafes);
        ListFragment.setListAdapter(cafeItemArrayAdapter);

    }
这是我的适配器:

package swinnen.jente.mijnapp;


import Model.Cafe;
import android.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;

import java.util.List;
/**
 * Created by jenteswinnen on 10/01/16.
 */
public class CafeAdapter extends ArrayAdapter<Cafe> {

    private LayoutInflater inflater;

    public CafeAdapter(Fragment activity, List<Cafe> items){
        super(activity.getActivity(), R.layout.row_cafe, items);
        inflater = activity.getActivity().getLayoutInflater();
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent){

        View view = inflater.inflate(R.layout.row_cafe, parent, false);

        Cafe myObject = getItem(position);

        TextView titel = (TextView) view.findViewById(R.id.cafeNaam);
        titel.setText(myObject.getNaam());
        TextView email = (TextView) view.findViewById(R.id.email);
        email.setText(myObject.getEmail());
        TextView openings = (TextView) view.findViewById(R.id.openings);
        openings.setText(myObject.getEmail());
        return view;


    }




}
包swinen.jente.mijnapp;
进口模型.Cafe;
导入android.app.Fragment;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.ArrayAdapter;
导入android.widget.TextView;
导入java.util.List;
/**
*由Jenteswinen于2016年1月10日创建。
*/
公共类CafeAdapter扩展了ArrayAdapter{
私人充气机;
公共CafeAdapter(片段活动、列表项){
super(activity.getActivity(),R.layout.row_cafe,items);
充气机=活动。getActivity().GetLayoutFlater();
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
视图=充气机。充气(R.layout.row\u cafe,父级,false);
Cafe myObject=getItem(位置);
TextView titel=(TextView)view.findviewbyd(R.id.cafeNaam);
titel.setText(myObject.getNaam());
TextView email=(TextView)view.findViewById(R.id.email);
setText(myObject.getEmail());
TextView开口=(TextView)view.findViewById(R.id.openings);
setText(myObject.getEmail());
返回视图;
}
}

只需删除该行代码上的
ListFragment
单词,它应该如下所示:

setListAdapter(cafeItemArrayAdapter);
您所做的是访问类
ListFragment
的方法,而不是它的实例

此外,如果将此代码放在return语句之后,则无法访问此代码,因此请将其放在return语句之前:

    cafeItemArrayAdapter = new ArrayAdapter(getActivity(), R.layout.activity_main);
    setListAdapter(cafeItemArrayAdapter);
    return inflater.inflate(R.layout.activity_main, container, false);