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