【问题标题】:Populate Data to Listview but Arrayadapter not working将数据填充到 Listview 但 Arrayadapter 不工作
【发布时间】:2020-02-10 08:57:26
【问题描述】:

我正在尝试将数据从我的arrayList 填充到列表视图。但由于某种原因,我收到错误error: no suitable constructor found for ArrayAdapter(activity2.SendPostRequest,int,int,ArrayList<HashMap<String,String>>) constructor ArrayAdapter.ArrayAdapter(Context,int,int,HashMap<String,String>[]) is not applicable

                JSONArray json = new JSONArray(data);
                ArrayList<HashMap<String, String>>  arrayList = new ArrayList<HashMap<String, String>>();

                HashMap<String, String> map = new HashMap<String, String>();

                try {
                for(int i=0;i<json.length();i++){
                    JSONObject e =json.getJSONObject(i);

                    map.put("id", String.valueOf(i));
                    map.put("Name", "Vorname: " + e.getString("meta_value"));
                    map.put("orderid", "id: " + e.getString("post_id"));
                    arrayList.add(map);
                    return map.toString();
                }
                    ArrayAdapter<HashMap<String, String>> adapter = new ArrayAdapter<HashMap<String, String>>(this,android.R.layout.simple_list_item_1, android.R.id.text1, arrayList);

                list.setAdapter(adapter);
                }catch (JSONException e){
                    Log.e(this.getClass().getName(), "Some JSON error occurred" + e.getMessage());

                }

找不到解决办法

【问题讨论】:

    标签: java android hashmap android-arrayadapter simpleadapter


    【解决方案1】:

    ArrayAdapter(activity2.SendPostRequest,int,int,ArrayList>)

    问题是您将其作为第一个参数传递给适配器以提供上下文。

    constructor ArrayAdapter.ArrayAdapter(Context,int,int,HashMap&lt;String,String&gt;[])

    Solution

    而不是这个pass this

    getContext() or getActivity()

    因为这可能指向不同的上下文,具体取决于您使用的是什么。

    请参阅此link 以深入了解thiskeyword

    【讨论】:

    • @Arul_Mani 那么我需要更改哪一部分?
    • @Arul_Mani 因为我把它改成了ArrayAdapter&lt;HashMap&lt;String, String&gt;&gt; adapter = new ArrayAdapter&lt;HashMap&lt;String, String&gt;&gt;(this.getActivity(),android.R.layout.simple_list_item_1, android.R.id.text1, arrayList);.getActivity 是红色的
    • 而不是“this”传递getActivity或getContext()
    • @Arul_Mani 那么这段代码应该是什么样子(对不起,如果我不检查它:))
    • @Arul_Mani 所以它应该看起来像这样还是?:ArrayAdapter&lt;HashMap&lt;String, String&gt;&gt; adapter = new ArrayAdapter&lt;HashMap&lt;String, String&gt;&gt;(activity2.this, android.R.layout.simple_list_item_1, android.R.id.text1, arrayList);
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多