为什么此代码中出现错误?

时间:2018-07-08 10:29:53

标签: android json

public class MainActivity extends AppCompatActivity {

ListView fruitsList;
String url = "http://www.thecrazyprogrammer.com/example_data/fruits_array.json";

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

    fruitsList = (ListView)findViewById(R.id.fruitsList);

    StringRequest request = new StringRequest(url, new Response.Listener<String>() {
        @Override
        public void onResponse(String string) {
            parseJsonData(string);
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError volleyError) {
            Toast.makeText(getApplicationContext(), "Some error occurred!!", Toast.LENGTH_SHORT).show();
        }
    });

    RequestQueue rQueue = Volley.newRequestQueue(MainActivity.this);
    rQueue.add(request);
}

void parseJsonData(String jsonString) {
    try {
        JSONObject object = new JSONObject(jsonString);
        JSONArray fruitsArray = object.getJSONArray("fruits");
        ArrayList al = new ArrayList();

        for(int i = 0; i < fruitsArray.length(); ++i) {
            al.add(fruitsArray.getString(i));
        }

        ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, al);
        fruitsList.setAdapter(adapter);
    } catch (JSONException e) {
        e.printStackTrace();
    }
}
}

发生了一些错误!每当我运行它就会出现。有人可以告诉我这段代码哪里出了问题吗?我是一个初学者,正在对我的sch工作进行一些修订。似乎无法解决这个问题

1 个答案:

答案 0 :(得分:0)

为了获得更多详细的错误输出,您需要访问异常并从那里打印所需的内容。在这种情况下,您坚持使用烤面包(不应该,应该使用Log类将错误直接记录到控制台,在这种情况下为Log.e(ex.getMessage());)

尝试以下操作;

 @Override
        public void onErrorResponse(VolleyError volleyError) {
            Toast.makeText(getApplicationContext(), volleyError.getMessage(), Toast.LENGTH_SHORT).show();
        }