まず、私はアンドロイドの初心者です。 今、私は学校のためのアプリケーションを構築しています。 この機能の1つでは、生徒のスケジュールを呼び出す機能があります。私はこの関数のチュートリアルを学んでいますが、それでも私が望むものは私に与えられません。 JSONArrayから値を解析し、ListViewに値を表示します。しかし、私には1つの正確なデータだけが与えられます。JSON配列を配列キーなしでAndroidで一覧表示する方法を完了するには
私はJSON配列から最初
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"
}]
を始めましょうそして、私は私のコード
MainActivity.java
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);
}
そして、この私が何を得る 誤った結果
そして、私が最後にリスト表示のための ルックを望むものを、この
だから、これ ありがとう修正、および方法を、私を助けてください申し訳ありません私の英語のあまり良くない
ベスト場合敬具。
EDIT これは
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;
}
}
マイObjectクラスであり、これはセットアダプタが後
ArrayList<ScheduleObject> allscheduleObjects=new ArrayList<ScheduleObject>();
for (int i = 0; i < array.length(); i++) {
JSONObject arrayELement = array.getJSONObject(i);
ScheduleObject sche_object=new ScheduleObject();
sche_object.setMataPelajaran(arrayELement.getString("mapel"));
sche_object.setNamaGuru(arrayELement.getString("nama_guru"));
sche_object.setKegiatan(arrayELement.getString("kegiatan"));
sche_object.setJamMulai(arrayELement.getString("jam_start"));
sche_object.setJamSelesai(arrayELement.getString("jam_end"));
allscheduleObjects.add(sche_object);
}
scheduleList = (ListView)findViewById(R.id.scheduleList);
ListAdapter listAdapter = new ScheduleAdapter
(
Schedule.this,
R.layout.schedulie_list,allscheduleObjects
);
scheduleList.setAdapter(listAdapter);
・ホープ以下のようなループexicutionのために、これは解決します
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;
}
}
移動アダプターをforループから外す – Nilabja
@Nilabjaアダプターはすでに移動していますが、まだ動作しません。 – BroJay
http://www.androidhive.info/2012/01/android -json-parsing-tutorial/ これを参照してください。 – Nilabja