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