首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SimpleAdapter不工作

SimpleAdapter不工作
EN

Stack Overflow用户
提问于 2014-04-17 18:56:38
回答 2查看 79关注 0票数 0

行中的空指针异常:

代码语言:javascript
复制
   listView.setAdapter(sAdapter);

代码语言:javascript
复制
public class MyEmployeFragment extends Fragment {


    MyTask task;
    String employer_id;
    String employer_name;
    String str=null;
    // имена атрибутов для Map
    final String ATTRIBUTE_ID   = "p_id";
    final String ATTRIBUTE_NAME = "p_name";
    ListView listView;

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

        //myPrefs = this.getActivity().getSharedPreferences("MYsettings", Context.MODE_PRIVATE);
        task    = new MyTask();
        task.execute();

        // Creating view correspoding to the fragment
        View v = inflater.inflate(R.layout.my_employe, container, false);

        // Updating the action bar title
        getActivity().getActionBar();
        String[] userId = {"1","2","3"};

        String[] userName = {"Nadezhd","Vasya", "hardcore"};

        ArrayList<Map<String, Object>> data = new ArrayList<Map<String, Object>>(
                userId.length);
        Map<String, Object> m;
        for (int i = 0; i < userId.length; i++) {
            m = new HashMap<String, Object>();
            m.put(ATTRIBUTE_ID, userId[i]);
            m.put(ATTRIBUTE_NAME, userName[i]);
            data.add(m);
        }

        // массив имен атрибутов, из которых будут читаться данные
        String[] from = {ATTRIBUTE_ID, ATTRIBUTE_NAME};
        // массив ID View-компонентов, в которые будут вставлять данные
        int[] to = {R.id.tw_employe_id, R.id.tw_employe_name};

        // создаем адаптер
        SimpleAdapter sAdapter = new SimpleAdapter(getActivity(), data, R.layout.list_item_employee,
                from, to);


        // определяем список и присваиваем ему адаптер
        listView = (ListView) getActivity().findViewById(R.id.lv_employee_list);


       // ListView listView = (ListView) getView();
        listView.setAdapter(sAdapter);
    return v;
}



        class MyTask extends AsyncTask<Void, Void, Void> {

            @Override
            protected void onPreExecute() {

                super.onPreExecute();
            }

            @Override
            protected Void doInBackground(Void... params) {

                String s = "5ACACEC6-752B-4EFF-AA50-EEBE58A52113";
                // String user_guid = myPrefs.getString("guid", "");

                HttpActivity _http = new HttpActivity("192.168.10.11", "80");
                _http.set_addr_protocol("/WebSite/P/spr/spr.aspx/");
                _http.add_param("query", "spr_employee_get");
                // _http.add_param("p_guid", user_guid.toString().trim());
                _http.add_param("p_guid", s);
                _http.send();

                employer_name = _http.getArrayParamValue("p_name");
                employer_id = _http.getArrayParamValue("p_id");


                // массивы данных
                //String[] userId = {employer_id};

                //String[] userName = {employer_name};



            return null;
        }

            @Override
            protected void onPostExecute(Void result) {
                super.onPostExecute(result);


            }
        }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-17 19:01:10

正如@Little Child所提到的,您的ListViewnull,问题是下面的代码行:

代码语言:javascript
复制
listView = (ListView) getActivity().findViewById(R.id.lv_employee_list);

这实际上应该是:

代码语言:javascript
复制
listView = (ListView) v.findViewById(R.id.lv_employee_list);
票数 3
EN

Stack Overflow用户

发布于 2014-04-17 18:59:11

从外观上看,您的listView是空的,而不是适配器。把它打印到日志中,看看你得到了什么。:)

根据Egor的答复更新:

您在Activity中拥有的是一个Fragment。因此,当您通过getActivity().findViewById()查找列表视图时,安卓将在Activity中搜索ListView,而它不会在那里找到它,因为ListView位于Fragment中。

因此,您需要使用片段的膨胀视图并使用findElementbyId(),并获得神秘的难以捉摸的ListView :)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23141252

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档