来自json数组的Android listview

时间:2017-03-10 11:03:05

标签: android json listview

我是android的新手,我正在尝试填充列表视图。

当我使用数组'months'时,列表会正确填充,但是当我尝试使用'myFamily'时,列表为空。

为什么会这样?

myFamily数组如下:

  

[免费婴儿吉尼斯射击,2-4-1鸡尾酒,本周葡萄酒£21,无限咖啡£5,单伏特加Redbull£5,买一送一(12 pm-8pm)]

完整代码:

public class offers extends AppCompatActivity {

    private String jsonResponse;

    private String[] months = { "JAN", "FEB", "MAR", "APR", "MAY", "JUNE", "JULY",
            "AUG", "SEPT", "OCT", "NOV", "DEC" };


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_offers);

        final String PREFS_NAME = "userDefaults";
        final ListView myListView = (ListView) findViewById(R.id.listViewOffers);

        SharedPreferences settings_get = getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE);
        final String smartCode2 = settings_get.getString("smartCode2", "");

        final ArrayList<String> myFamily = new ArrayList<>();

        RequestQueue queue = Volley.newRequestQueue(offers.this);
        String url = "http://www.barfibrenetwork.co.uk/backend/androidoffers.php?smartcode="+smartCode2;
// Request a string response from the provided URL.

        JsonArrayRequest req = new JsonArrayRequest(url,
                new Response.Listener<JSONArray>() {
                    @Override
                    public void onResponse(JSONArray response) {
                       // Log.d(TAG, response.toString());

                        try {
                            // Parsing json array response
                            // loop through each json object
                            jsonResponse = "";
                            for (int i = 0; i < response.length(); i++) {

                                JSONObject person = (JSONObject) response
                                        .get(i);

                                String name = person.getString("offertitle");



                                Log.i("OFFERTITLE:", name);
                               myFamily.add(name);
                            }

                            Log.i("REPLY:", String.valueOf(myFamily));



                        } catch (JSONException e) {
                            e.printStackTrace();
                            Toast.makeText(getApplicationContext(),
                                    "Error: " + e.getMessage(),
                                    Toast.LENGTH_LONG).show();
                        }


                    }
                }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                Log.i("Error: ", error.getMessage());
                Toast.makeText(getApplicationContext(),
                        error.getMessage(), Toast.LENGTH_SHORT).show();

            }
        });

// Add the request to the RequestQueue.

        queue.add(req);



        ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this,
                android.R.layout.activity_list_item, android.R.id.text1, myFamily );


        myListView.setAdapter(arrayAdapter);




    }

1 个答案:

答案 0 :(得分:0)

这是JSON格式示例

{[“示例字符串”,“示例字符串2”]}

您应该有类似的JSON格式。别忘了屏蔽特殊符号