简体   繁体   English

片段Android上ListView中的错误

[英]Error in ListView on Fragment Android

please help me, i have error in onCreate like this 请帮助我,我在onCreate中有这样的错误

Multiple markers at this line 这行有多个标记

  • The method setContentView(View) is undefined for the type FindPeopleFragment 未为类型FindPeopleFragment类型定义setContentView(View)方法
  • The constructor View(int) is undefined 构造函数View(int)是未定义的

second error in ListView, error like this ListView中的第二个错误,像这样的错误

  • rootView cannot be resolved rootView无法解析

third error in Adapter, error like this 适配器中的第三个错误,像这样的错误

  • The constructor SimpleAdapter(FindPeopleFragment, ArrayList>, int, String[], int[]) is undefined 构造函数SimpleAdapter(FindPeopleFragment,ArrayList>,int,String [],int [])未定义

please help me, to resolved this 请帮助我,解决这个问题

FindPeopleFragment.java FindPeopleFragment.java

import android.os.Bundle;
import android.app.Activity;
import android.app.Fragment;

import java.util.ArrayList;
import java.util.HashMap;

import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;
import android.widget.ListAdapter;
import android.widget.SimpleAdapter;


public class FindPeopleFragment extends Fragment  {

    public FindPeopleFragment(){}
      protected ListView lv;
      protected ListAdapter adapter;
      SimpleAdapter Adapter;
      HashMap<String, String> map;
      ArrayList<HashMap<String, String>> mylist;
      String[] Pil;
      String[] Ltn;
      String[] Gbr;


      public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

        onCreate(savedInstanceState);
        setContentView(new View(R.layout.activity_pulau));

        ListView lv = (ListView) rootView.findViewById(R.id.lv);

        Pil = new String[] {"", "", "", "", ""};
        Ltn = new String[] {"", "", "", "", ""};
        Gbr = new String[] {Integer.toString(R.drawable.coba),
                                     };

        mylist = new ArrayList<HashMap<String,String>>();

        for (int i = 0; i < Pil.length; i++){
            map = new HashMap<String, String>();
            map.put("list", Pil[i]);
            map.put("latin", Ltn[i]);
            map.put("gbr", Gbr[i]);
            mylist.add(map);             
        }

        Adapter = new SimpleAdapter(this, mylist, R.layout.item_kepulauan,
                  new String[] {"list", "latin", "gbr"}, new int[] {R.id.tv_nama, R.id.tv_des, R.id.imV});
        lv.setAdapter(Adapter);
        return inflater.inflate(R.layout.activity_pulau, container, false);
    }

}

You should inflate a View in onCreateView(...) like 您应该在onCreateView(...)膨胀View

 View rootView = inflater.inflate(R.layout.activity_pulau, container,
            false);

and return rootView; return rootView; at the end on onCreateView(...) 最后在onCreateView(...)

Corrected: 更正:

   public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

    View rootView = inflater.inflate(R.layout.activity_pulau, container,false);

    ListView lv = (ListView) rootView.findViewById(R.id.lv);

    Pil = new String[] {"", "", "", "", ""};
    Ltn = new String[] {"", "", "", "", ""};
    Gbr = new String[] {Integer.toString(R.drawable.coba),
                                 };

    mylist = new ArrayList<HashMap<String,String>>();

    for (int i = 0; i < Pil.length; i++){
        map = new HashMap<String, String>();
        map.put("list", Pil[i]);
        map.put("latin", Ltn[i]);
        map.put("gbr", Gbr[i]);
        mylist.add(map);             
    }

    Adapter = new SimpleAdapter(getActivity(), mylist, R.layout.item_kepulauan,
              new String[] {"list", "latin", "gbr"}, new int[] {R.id.tv_nama, R.id.tv_des, R.id.imV});
    lv.setAdapter(Adapter);

    return rootView;
  }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM