【发布时间】:2015-04-28 12:18:15
【问题描述】:
我正在尝试使用从 RESTApi 获得的各种对象填充 ListView。
为了测试连接和对象是否被实际接收,我调用了这个方法:
protected void onPostExecute(String result) {
try {
JSONArray users = new JSONArray(result);
JSONObject user = users.getJSONObject(1);
Toast.makeText(MainActivity.this, user.getString("name"), Toast.LENGTH_LONG).show();
jsonList = users;
} catch (JSONException e) {
e.printStackTrace();
}
}
Toast 确实向我显示了当前对象的名称,但是每当我尝试填充我的 ListView 时,我都会收到 NullPointerException。
我创建了一个 TextView 来测试 JSON 是否真的存在,但在这里我得到另一个 NullPointerException:
textView.setText(user.getString("name"));
当 JSONObject 在 Toast 中正常工作时,为什么它在这里给我一个 NullPointer?
【问题讨论】:
-
请发布您的 ListView 代码以及 logcat 输出
-
解析 JSON 似乎不是问题。 XML 对象(ListView、TextView、..)是否正确初始化?
-
把你的json例子和listview处理代码
-
现在我说的是 TextView 而不是 ListView (JSON:
[{"name":"Christian Haase","_id":"54eda37aa4e01feebaf9c66a","__v":0},{"name":"Line Mungaard","_id":"54edde9ba4e01feebaf9c66b","__v":0}]) -
您确定您的
textView(或就此而言也是特定的ListView对象)在那个时候不为空吗?如果您将setText方法放在Toast显示有效值的同一位置,这似乎是最明显的事情。 (唯一想到的另一件事是您的 json 结果可能会不时变化,因此有时工作有时不工作。)
标签: android arrays listview textview