Zunächst einmal bin ich ein Neuling in Android. Im Moment baue ich eine Anwendung für die Schule. In einem davon Feature gibt es eine Funktion zum Aufrufen welcher Zeitplan für den Schüler. Ich habe Tutorial für diese Funktion lernen, aber es wird mir nicht geben, was ich will. Ich möchte Wert von JSONArray analysieren und dann Werte in ListView anzeigen. Aber es gibt mir nur eine genaue Daten nur.So führen Sie das Analysieren des JSON-Arrays durch, um die Ansicht in Android ohne Array-Schlüssel anzuzeigen
Lassen Sie mich von JSON Array zum ersten Mal starten
JSON Array
[{
"jam_start": "07:30:00",
"jam_end": "08:05:00",
"kegiatan": "Belajar (KBM)",
"mapel": "Seni Budaya Dan Keterampilan",
"nama_guru": "Vina Rosiyanti,S.Pd"
}, {
"jam_start": "08:06:00",
"jam_end": "08:40:00",
"kegiatan": "Belajar (KBM)",
"mapel": "Bahasa Indonesia",
"nama_guru": "Vina Rosiyanti,S.Pd"
}, {
"jam_start": "08:41:00",
"jam_end": "09:15:00",
"kegiatan": "Belajar (KBM)",
"mapel": "Bahasa Indonesia",
"nama_guru": "Vina Rosiyanti,S.Pd"
}, {
"jam_start": "11:01:00",
"jam_end": "11:35:00",
"kegiatan": "Belajar (KBM)",
"mapel": "Komputer",
"nama_guru": "Resi Gusta Arina,S.Pd.Gr"
}, {
"jam_start": "11:36:00",
"jam_end": "12:10:00",
"kegiatan": "Belajar (KBM)",
"mapel": "Komputer",
"nama_guru": "Resi Gusta Arina,S.Pd.Gr"
}, {
"jam_start": "13:01:00",
"jam_end": "13:35:00",
"kegiatan": "Belajar (KBM)",
"mapel": "Ilmu Pengetahuan Alam",
"nama_guru": "Vina Rosiyanti,S.Pd"
}, {
"jam_start": "13:36:00",
"jam_end": "14:10:00",
"kegiatan": "Belajar (KBM)",
"mapel": "Ilmu Pengetahuan Alam",
"nama_guru": "Vina Rosiyanti,S.Pd"
}]
und ich werde mein-Code
MainActivity.java starten
String schedule = response.toString();
JSONArray array = new JSONArray(schedule);
String jamMulai = null;
String jamSelesai = null;
String kegiatan = null;
String mapel = null;
String namaGuru = null;
for (int i = 0; i < array.length(); i++) {
JSONObject arrayELement = array.getJSONObject(i);
mapel = arrayELement.getString("mapel");
namaGuru = arrayELement.getString("nama_guru");
kegiatan = arrayELement.getString("kegiatan");
jamMulai = arrayELement.getString("jam_start");
jamSelesai = arrayELement.getString("jam_end");
HashMap<String, String> scheduleDetail = new HashMap<String, String>();
scheduleDetail.put(mapel, mapel);
scheduleDetail.put(namaGuru, namaGuru);
scheduleDetail.put(kegiatan, kegiatan);
scheduleDetail.put(jamMulai, jamMulai);
scheduleDetail.put(jamSelesai, jamSelesai);
scheduleListDetail.add(scheduleDetail);
scheduleList = (ListView)findViewById(R.id.scheduleList);
ListAdapter listAdapter = new SimpleAdapter
(
Schedule.this, scheduleListDetail,
R.layout.schedulie_list, new String[]
{mapel, namaGuru, kegiatan, jamMulai, jamSelesai},
new int[]{R.id.txtNamaPelajaran, R.id.txtNamaGuru, R.id.txtKegiatan, R.id.txtJamMulai, R.id.txtJamSelesai}
);
scheduleList.setAdapter(listAdapter);
}
Und das, was ich bekommen falschem Ergebnis
Und das, was ich Suchen Sie nach dem letzten Listenansicht wollen
So helfen Sie mir bitte, wie diese Danke zu beheben, und sorry, wenn mein Englisch nicht so gut
Beste Grüße.
EDIT Dies ist meine Objektklasse
Schedule Object
public class ScheduleObject {
private String MataPelajaran;
private String NamaGuru;
private String Kegiatan;
private String JamMulai;
private String JamSelesai;
public String getMataPelajaran() {
return MataPelajaran;
}
public void setMataPelajaran(String mataPelajaran) {
MataPelajaran = mataPelajaran;
}
public String getNamaGuru() {
return NamaGuru;
}
public void setNamaGuru(String namaGuru) {
NamaGuru = namaGuru;
}
public String getKegiatan() {
return Kegiatan;
}
public void setKegiatan(String kegiatan) {
Kegiatan = kegiatan;
}
public String getJamMulai() {
return JamMulai;
}
public void setJamMulai(String jamMulai) {
JamMulai = jamMulai;
}
public String getJamSelesai() {
return JamSelesai;
}
public void setJamSelesai(String jamSelesai) {
JamSelesai = jamSelesai;
}
}
Und das ist meine Adapterklasse
enter code here
public class ScheduleAdapter extends ArrayAdapter<ScheduleObject> {
private final Context context;
private ArrayList<ScheduleObject> scheduleObjects;
public ScheduleAdapter(Context context, int textViewResourceId, ArrayList<ScheduleObject> scheduleObjects){
super(context, textViewResourceId, scheduleObjects);
this.context = context;
this.scheduleObjects = new ArrayList<ScheduleObject>();
this.scheduleObjects.addAll(scheduleObjects);
}
private class ViewHolder{
TextView MataPelajaran;
TextView NamaGuru;
TextView Kegiatan;
TextView JamMulai;
TextView JamSelesai;
}
@Override
public View getView(int position, View convertView, ViewGroup parent){
ViewHolder viewHolder = null;
if(convertView == null){
LayoutInflater layoutInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = layoutInflater.inflate(R.layout.schedulie_list, null);
viewHolder = new ViewHolder();
viewHolder.MataPelajaran = (TextView)convertView.findViewById(R.id.txtNamaPelajaran);
viewHolder.NamaGuru = (TextView)convertView.findViewById(R.id.txtNamaGuru);
viewHolder.Kegiatan = (TextView)convertView.findViewById(R.id.txtKegiatan);
viewHolder.JamMulai = (TextView)convertView.findViewById(R.id.txtJamMulai);
viewHolder.JamSelesai = (TextView)convertView.findViewById(R.id.txtJamSelesai);
convertView.setTag(viewHolder);
}else{
viewHolder = (ViewHolder)convertView.getTag();
}
ScheduleObject scheduleObject = scheduleObjects.get(position);
viewHolder.MataPelajaran.setText(scheduleObject.getMataPelajaran());
viewHolder.NamaGuru.setText(scheduleObject.getNamaGuru());
viewHolder.Kegiatan.setText(scheduleObject.getKegiatan());
viewHolder.JamMulai.setText(scheduleObject.getJamMulai());
viewHolder.JamSelesai.setText(scheduleObject.getJamSelesai());
return convertView;
}
}
Move Adapter aus der for-Schleife – Nilabja
@Nilabja Ich habe bereits meinen Adapter bewegen, aber immer noch nicht funktionieren – BroJay
http://www.androidhive.info/2012/01/android -json-parsing-tutorial/ sieh dies und lass es mich wissen – Nilabja