首页 > 解决方案 > 数据未显示在布局中

问题描述

我正在尝试从 API 获取数据,但数据似乎没有显示在我的布局中。没有错误,logcat 似乎指向第 58 行和第 54 行,但我不知道这些行有什么问题。

这是代码:

@SuppressLint("Registered")
public class WaktuAzan extends AppCompatActivity {

    private static final String URL_ANNOUNCEMENT = "http://interxsgroup.com.my:8887/waktu_solat/api.php?zon=SGR01";
    private RecyclerView recyclerViewAzan;
    private List<WaktuAzanList> waktuAzanLists;
    private RequestQueue mQueue;
    private WaktuAzanAdapter adapter;

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

        waktuAzanLists = new ArrayList<>();

        recyclerViewAzan = findViewById(R.id.recyclerViewAzan);
        recyclerViewAzan.setHasFixedSize(true);
        recyclerViewAzan.setLayoutManager(new LinearLayoutManager(this));


        mQueue = Volley.newRequestQueue(this);

        getAzan();
    }

    private void getAzan() {


line 54   StringRequest stringRequest = new StringRequest(Request.Method.GET, URL_ANNOUNCEMENT, new Response.Listener<String>() {
            @Override
            public void onResponse(String response) {
                try {
line 58                JSONArray jsonArray = new JSONArray(response);


                    for (int i = 0; i < jsonArray.length(); i++) {
                        JSONObject data = jsonArray.getJSONObject(i);

                        waktuAzanLists.add(new WaktuAzanList(

//                                data.getString("waktu_imsak"),
//                                data.getString("waktu_subuh"),
//                                data.getString("waktu_syuruk"),
//                                data.getString("waktu_zohor"),
//                                data.getString("waktu_asar"),
//                                data.getString("waktu_maghrib"),
//                                data.getString("waktu_isyak"),
                                data.getString("nama_zon"),
                                data.getString("tarikh_masa")


                        ));

                        adapter = new WaktuAzanAdapter(waktuAzanLists,WaktuAzan.this);
                        recyclerViewAzan.setAdapter(adapter);
                    }
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                error.printStackTrace();
            }
        });

        mQueue.add(stringRequest);
    }
}

这是 logcat,log cat 似乎指向第 58 和 54 行。

2019-11-29 02:28:23.550 9673-9701/com.example.mobileapp1 D/EGL_emulation: eglMakeCurrent: 0x9af87320: ver 2 0 (tinfo 0x9afcab60)
2019-11-29 02:28:23.573 9673-9701/com.example.mobileapp1 D/EGL_emulation: eglMakeCurrent: 0x9af87320: ver 2 0 (tinfo 0x9afcab60)
2019-11-29 02:28:23.594 9673-9673/com.example.mobileapp1 W/System.err: org.json.JSONException: Value {"waktu_imsak":"05:41 a.m.","waktu_subuh":"05:51 a.m.","waktu_syuruk":"07:01 a.m.","waktu_zohor":"01:04 p.m.","waktu_asar":"04:26 p.m.","waktu_maghrib":"07:02 p.m.","waktu_isyak":"08:15 p.m.","kod_zon":"SGR01","nama_zon":"Gombak,Petaling,Sepang,Hulu Langat,Hulu Selangor,Rawang,S.Alam","tarikh_masa":"29-11-2019 02:28:26"} of type org.json.JSONObject cannot be converted to JSONArray
2019-11-29 02:28:23.594 9673-9673/com.example.mobileapp1 W/System.err:     at org.json.JSON.typeMismatch(JSON.java:111)
2019-11-29 02:28:23.594 9673-9673/com.example.mobileapp1 W/System.err:     at org.json.JSONArray.<init>(JSONArray.java:96)
2019-11-29 02:28:23.594 9673-9673/com.example.mobileapp1 W/System.err:     at org.json.JSONArray.<init>(JSONArray.java:108)
2019-11-29 02:28:23.594 9673-9673/com.example.mobileapp1 W/System.err:     at com.example.mobileapp1.WaktuAzan$1.onResponse(WaktuAzan.java:58)
2019-11-29 02:28:23.594 9673-9673/com.example.mobileapp1 W/System.err:     at com.example.mobileapp1.WaktuAzan$1.onResponse(WaktuAzan.java:54)
2019-11-29 02:28:23.594 9673-9673/com.example.mobileapp1 W/System.err:     at com.android.volley.toolbox.StringRequest.deliverResponse(StringRequest.java:82)
2019-11-29 02:28:23.594 9673-9673/com.example.mobileapp1 W/System.err:     at com.android.volley.toolbox.StringRequest.deliverResponse(StringRequest.java:29)
2019-11-29 02:28:23.594 9673-9673/com.example.mobileapp1 W/System.err:     at com.android.volley.ExecutorDelivery$ResponseDeliveryRunnable.run(ExecutorDelivery.java:102)
2019-11-29 02:28:23.594 9673-9673/com.example.mobileapp1 W/System.err:     at android.os.Handler.handleCallback(Handler.java:790)
2019-11-29 02:28:23.595 9673-9673/com.example.mobileapp1 W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:99)
2019-11-29 02:28:23.595 9673-9673/com.example.mobileapp1 W/System.err:     at android.os.Looper.loop(Looper.java:164)
2019-11-29 02:28:23.595 9673-9673/com.example.mobileapp1 W/System.err:     at android.app.ActivityThread.main(ActivityThread.java:6494)
2019-11-29 02:28:23.595 9673-9673/com.example.mobileapp1 W/System.err:     at java.lang.reflect.Method.invoke(Native Method)
2019-11-29 02:28:23.595 9673-9673/com.example.mobileapp1 W/System.err:     at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
2019-11-29 02:28:23.595 9673-9673/com.example.mobileapp1 W/System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
2019-11-29 02:28:23.611 9673-9701/com.example.mobileapp1 D/EGL_emulation: eglMakeCurrent: 0x9af87320: ver 2 0 (tinfo 0x9afcab60)
2019-11-29 02:28:23.618 9673-9701/com.example.mobileapp1 D/OpenGLRenderer: endAllActiveAnimators on 0x877c9b80 (RippleDrawable) with handle 0x877f22b0

标签: androidandroid-volley

解决方案


推荐阅读