Android 如何在recyclerView中将两个数据记录合并为一个?(mysql和截击)

Android 如何在recyclerView中将两个数据记录合并为一个?(mysql和截击),android,Android,我希望基于相同的日期,但不同的Sesi将两个数据记录合并为一个,例如Sesi 1,并且Sesi 2在recyclerVCiew中为1 请看我的申请表 这里我使用了mySql和volley 主要活动: StringRequest stringRequest = new StringRequest(Request.Method.GET, URL_ALL_JADWAL, new Response.Listener<String>() {

我希望基于相同的
日期
,但不同的
Sesi
将两个数据记录合并为一个,例如
Sesi 1
,并且
Sesi 2
recyclerVCiew中为1

请看我的申请表

这里我使用了
mySql
volley

主要活动

 StringRequest stringRequest = new StringRequest(Request.Method.GET, URL_ALL_JADWAL,
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    try {
                        //converting the string to json array object
                        JSONArray array = new JSONArray(response);

                        for (int i = 0; i < array.length(); i++) {
                            JSONObject jadwal = array.getJSONObject(i);
                            String kelas = jadwal.getString("Kelas");

                                    if (kelas.equals(Kelas)) {

                                        jadwalHarianList.add(new JadwalHarian(
                                                jadwal.getString("Nama_Pengajar"),
                                                jadwal.getString("Mata_Kuliah"),
                                                jadwal.getString("Ruang"),
                                                jadwal.getInt("Sesi"),
                                                jadwal.getString("Hari"),
                                                jadwal.getString("Jam")
                                        ));
                                    }
                                    JadwalRV jadwalRV = new JadwalRV(getApplicationContext(), jadwalHarianList);
                                    recyclerView.setAdapter(jadwalRV);
                                    jadwalRV.notifyDataSetChanged();
                                }
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }
            },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {

                }
            });

    //adding our stringrequest to queue

    Volley.newRequestQueue(this).add(stringRequest);
 public void onBindViewHolder(JadwalRV.MyViewHolder myViewHolder, int i) {
    JadwalHarian jadwalHarian = mJadwalHarian.get(i);



        myViewHolder.tHari.setText(jadwalHarian.getHari());
        myViewHolder.tIsi.setText("Waktu\n" +
                "Ruang\n" +
                "Mata Kuliah\n" +
                "Dosen Pengajar");
        myViewHolder.thjam.setText(
                "= " + jadwalHarian.getJam()+
                        "\n= " + jadwalHarian.getRuang() +
                        "\n= " + jadwalHarian.getMata_Kuliah() +
                        "\n= " + jadwalHarian.getNama_Pengajar() );

        // SESI 2

    myViewHolder.tIsi2.setText("Waktu\n" +
            "Ruang\n" +
            "Mata Kuliah\n" +
            "Dosen Pengajar");
    myViewHolder.thjam2.setText(
            "= " + jadwalHarian.getJam()+
                    "\n= " + jadwalHarian.getRuang() +
                    "\n= " + jadwalHarian.getMata_Kuliah() +
                    "\n= " + jadwalHarian.getNama_Pengajar() );




}

下面是我在PHP json中使用的
内部连接
您可以这样尝试,但它可以帮助您:

try
        {
            JSONArray array = new JSONArray();

            ArrayList<HashMap<String,Object>> jadwalHarianList = new ArrayList<>();

            JSONObject jsonObject=new JSONObject();
            try
            {
                jsonObject.put("Kelas", "R28");
                jsonObject.put("Sesi", "1");
                jsonObject.put("Mata_Kuliah", "Pemprograman #1");

                array.put(jsonObject);

                jsonObject = new JSONObject();

                jsonObject.put("Kelas", "R28");
                jsonObject.put("Sesi", "2");
                jsonObject.put("Mata_Kuliah", "Algoritma #2");

                array.put(jsonObject);
            }
            catch (Exception e)
            {
                Log.e("ldfjdlfj","data----111_jsonOb_ex>>>"+e);
            }

            Log.e("ldfjdlfj","data----2222>>>"+array);


            String previous = "";
            for (int i = 0; i < array.length(); i++) {
                JSONObject jadwal = array.getJSONObject(i);
                String kelas = jadwal.getString("Kelas");
                String Sesi = jadwal.getString("Sesi");
                String Mata_Kuliah = jadwal.getString("Mata_Kuliah");



                if(kelas.equalsIgnoreCase(previous))
                {
                    HashMap<String,Object> map = new HashMap<>();

                    map.put("kelas",array.getJSONObject(i-1).getString("Kelas"));
                    map.put("Sesi",array.getJSONObject(i-1).getString("Sesi"));
                    map.put("Sesi2",Sesi);
                    map.put("Mata_Kuliah",Mata_Kuliah);

                    jadwalHarianList.add(map);
                }
                else
                {
                    previous = kelas;

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

                    map.put("kelas",array.getJSONObject(i).getString("Kelas"));
                    map.put("Sesi",array.getJSONObject(i).getString("Sesi"));
                    map.put("Sesi2","");
                    map.put("Mata_Kuliah",Mata_Kuliah);

                    jadwalHarianList.add(map);
                }



        }

            Log.e("ldfjdlfj","data----333_>>>"+jadwalHarianList);

    } catch (JSONException e) {
            e.printStackTrace();
        }
试试看
{
JSONArray数组=新的JSONArray();
ArrayList jadwalHarianList=新的ArrayList();
JSONObject JSONObject=新的JSONObject();
尝试
{
jsonObject.put(“Kelas”、“R28”);
jsonObject.put(“Sesi”,“1”);
jsonObject.put(“Mata_Kuliah”、“Pemprograman#1”);
put(jsonObject);
jsonObject=新的jsonObject();
jsonObject.put(“Kelas”、“R28”);
jsonObject.put(“Sesi”,“2”);
jsonObject.put(“Mata_Kuliah”、“Algoritma#2”);
put(jsonObject);
}
捕获(例外e)
{
Log.e(“ldfjdlfj”,“data----111_jsonOb_ex>>>>”+e);
}
Log.e(“ldfjdlfj”,“data----2222>>>”+数组);
字符串previous=“”;
对于(int i=0;i>>”+jadwalHarianList);
}捕获(JSONException e){
e、 printStackTrace();
}

您可以像这样尝试以下不明显的内容,但它可以帮助您:

try
        {
            JSONArray array = new JSONArray();

            ArrayList<HashMap<String,Object>> jadwalHarianList = new ArrayList<>();

            JSONObject jsonObject=new JSONObject();
            try
            {
                jsonObject.put("Kelas", "R28");
                jsonObject.put("Sesi", "1");
                jsonObject.put("Mata_Kuliah", "Pemprograman #1");

                array.put(jsonObject);

                jsonObject = new JSONObject();

                jsonObject.put("Kelas", "R28");
                jsonObject.put("Sesi", "2");
                jsonObject.put("Mata_Kuliah", "Algoritma #2");

                array.put(jsonObject);
            }
            catch (Exception e)
            {
                Log.e("ldfjdlfj","data----111_jsonOb_ex>>>"+e);
            }

            Log.e("ldfjdlfj","data----2222>>>"+array);


            String previous = "";
            for (int i = 0; i < array.length(); i++) {
                JSONObject jadwal = array.getJSONObject(i);
                String kelas = jadwal.getString("Kelas");
                String Sesi = jadwal.getString("Sesi");
                String Mata_Kuliah = jadwal.getString("Mata_Kuliah");



                if(kelas.equalsIgnoreCase(previous))
                {
                    HashMap<String,Object> map = new HashMap<>();

                    map.put("kelas",array.getJSONObject(i-1).getString("Kelas"));
                    map.put("Sesi",array.getJSONObject(i-1).getString("Sesi"));
                    map.put("Sesi2",Sesi);
                    map.put("Mata_Kuliah",Mata_Kuliah);

                    jadwalHarianList.add(map);
                }
                else
                {
                    previous = kelas;

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

                    map.put("kelas",array.getJSONObject(i).getString("Kelas"));
                    map.put("Sesi",array.getJSONObject(i).getString("Sesi"));
                    map.put("Sesi2","");
                    map.put("Mata_Kuliah",Mata_Kuliah);

                    jadwalHarianList.add(map);
                }



        }

            Log.e("ldfjdlfj","data----333_>>>"+jadwalHarianList);

    } catch (JSONException e) {
            e.printStackTrace();
        }
试试看
{
JSONArray数组=新的JSONArray();
ArrayList jadwalHarianList=新的ArrayList();
JSONObject JSONObject=新的JSONObject();
尝试
{
jsonObject.put(“Kelas”、“R28”);
jsonObject.put(“Sesi”,“1”);
jsonObject.put(“Mata_Kuliah”、“Pemprograman#1”);
put(jsonObject);
jsonObject=新的jsonObject();
jsonObject.put(“Kelas”、“R28”);
jsonObject.put(“Sesi”,“2”);
jsonObject.put(“Mata_Kuliah”、“Algoritma#2”);
put(jsonObject);
}
捕获(例外e)
{
Log.e(“ldfjdlfj”,“data----111_jsonOb_ex>>>>”+e);
}
Log.e(“ldfjdlfj”,“data----2222>>>”+数组);
字符串previous=“”;
对于(int i=0;i>>”+jadwalHarianList);
}捕获(JSONException e){
e、 printStackTrace();
}

你的意思是要覆盖?是的,可能是这样,我想合并数据请发布你的3个表结构,Sir,这里有点混乱。从您提供的图像中,json是否已成功检索?这是你的php脚本的输出吗?你的意思是你想要覆盖吗?是的,可以这样,我想要合并数据。请发布你的3表结构,这里有点混乱。从您提供的图像中,json是否已成功检索?这是你的php脚本的输出吗?之前我真的理解了谢谢,但是对不起,先生,我不理解这个方法:(为什么手册中的“编程1”和“算法2”是用代码写的吗?它不是自动从json中提取的吗?先生@Ronny,我是手动编写的,这样您就可以理解如何将数据放入
ArrayList
,只需给您logicbef