2016-05-14 101 views
-2

我有一个tabLayout与2个片段与listView的应用程序,我想从一个URLConnection与Json加载内容,但在Fragment.java文件中我错了:不能解析方法'findViewByID(int)'。错误:无法找到符号方法findviewbyid

public class Fragment1 extends Fragment implements URLConnectionResponse { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     CanteenProvider canProv = new CanteenProvider(); 
     canProv.delegate = this; 
     canProv.getDishes(getActivity().getApplicationContext()); 
    } 

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

    @Override 
    public void processFinish(List<?> output) { 
     ListView canteenList = (ListView) findViewById(R.id.mensalistView); 
     ArrayList<Dish> canteenItemContent = new ArrayList<Dish>(); 
     canteenItemContent = (ArrayList<Dish>)output; 

     CanteenListAdapter canteenAdapter = new CanteenListAdapter(canteenItemContent, this); 
     canteenList.setAdapter(canteenAdapter); 
    } 


} 

回答

1

遵循stack overflow

private ListView canteenList=null; 
    private View view = null; 
@Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     view = inflater.inflate(R.layout.activity_canteen_tab_mensa, container, false); 
     canteenList = (ListView)view.findViewById(R.id.mensalistView); 
     return view; 
    } 

    @Override 
    public void processFinish(List<?> output) { 

     ArrayList<Dish> canteenItemContent = new ArrayList<Dish>(); 
     canteenItemContent = (ArrayList<Dish>)output; 

     CanteenListAdapter canteenAdapter = new CanteenListAdapter(canteenItemContent, view.getContext()); 
     canteenList.setAdapter(canteenAdapter); 
    } 
这个答案
0

你必须在onCreateView充气这样

mainContent = inflater.inflate(R.layout.activity_canteen_tab_mensa, container, false); 
return mainContent; 

的时间和在与的参考月底创建一个全局变量

View mainContent;

之后主要内容你可以findViewById像这样

ListView canteenList = (ListView) mainContent.findViewById(R.id.mensalistView);

1

您应该使用的View类。所以你可以为你的ListView创建一个全局变量:

ListView canteenList; 

然后在onViewCreated初始化canteenList

@Override 
    public void onViewCreated(View view, Bundle savedInstanceState) { 
     super.onViewCreated(view, savedInstanceState); 
     canteenList = view.findViewById(R.id.mensalistView); 
    } 
相关问题