0
버튼을 동적으로로드하고 있습니다. 현재 2 개의 버튼이 있습니다. 그래서 첫 번째 버튼을 클릭하면 새로운 활동이로드됩니다. 동적으로로드 된 모든 버튼 중 onclick()
에 대해 동일한 활동이로드되고 해당 활동과 관련된 활동 데이터가 button
으로 표시되어야합니다. 버튼의 Onclick()
은 db의 특정 값만 가져 와서 표시해야합니다.Android volley json 파싱
그러나 logcat
는 "NO VALUE FOR LIST".
StringRequest stringRequest = new StringRequest(Request.Method.GET, url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
progressDialog.dismiss();
try {
JSONObject jsonObject = new JSONObject(response);
JSONArray jsonArray = jsonObject.getJSONArray("list");
tv.removeAllViewsInLayout();
int flag = 1;
for (int i =-1 ; i < jsonArray.length();i++) {
TableRow tr = new TableRow(TestDetails.this);
tr.setLayoutParams(new ViewGroup.LayoutParams(
ViewGroup.LayoutParams.FILL_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT));
if (flag == 1) {
TextView b10 = new TextView(TestDetails.this);
b10.setPadding(50, 30, 50, 30);
b10.setText("ID");
b10.setTextAlignment(View.TEXT_ALIGNMENT_VIEW_START);
b10.setTop(20);
b10.setTextColor(Color.BLACK);
b10.setBackgroundColor(Color.rgb(206, 147, 216));
b10.setTextSize(15);
tr.addView(b10);
TextView b6 = new TextView(TestDetails.this);
b6.setPadding(50, 30, 50, 30);
b6.setText("TEST CODE");
b6.setTextAlignment(View.TEXT_ALIGNMENT_VIEW_START);
b6.setTop(20);
b6.setTextColor(Color.BLACK);
b6.setBackgroundColor(Color.rgb(206, 147, 216));
b6.setTextSize(15);
tr.addView(b6);
TextView b19 = new TextView(TestDetails.this);
b19.setPadding(50, 30, 50, 30);
b19.setTextSize(15);
b19.setText("TEST DESCRIPTION");
b19.setTextAlignment(View.TEXT_ALIGNMENT_VIEW_START);
b19.setTextColor(Color.BLACK);
b19.setBackgroundColor(Color.rgb(206, 147, 216));
tr.addView(b19);
TextView b29 = new TextView(TestDetails.this);
b29.setPadding(10, 0, 0, 0);
b29.setText("TEST PRICE");
b29.setTextAlignment(View.TEXT_ALIGNMENT_CENTER);
b29.setTextColor(Color.rgb(104, 143, 202));
b29.setTextSize(15);
tr.addView(b29);
tv.addView(tr);
final View vline = new View(TestDetails.this);
vline.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.FILL_PARENT, 10));
vline.setBackgroundColor(Color.BLUE);
tv.addView(vline);
flag = 0;
} else {
JSONObject jsonObject1 = jsonArray.getJSONObject(i);
String n = jsonObject1.getString("test_code");
TextView b6 = new TextView(TestDetails.this);
b6.setText(n);
b6.setPadding(50, 30, 50, 30);
b6.setTextColor(Color.BLACK);
b6.setTextAlignment(View.TEXT_ALIGNMENT_VIEW_START);
b6.setTextSize(15);
tr.addView(b6);
TextView b1 = new TextView(TestDetails.this);
b1.setPadding(50, 30, 50, 30);
b1.setTextSize(15);
String stime1 = jsonObject1.getString("test_description");
b1.setText(stime1);
b1.setTextColor(Color.BLACK);
// b1.setBackgroundColor(Color.rgb(186, 104, 200));
b1.setTextAlignment(View.TEXT_ALIGNMENT_VIEW_START);
tr.addView(b1);
TextView b2 = new TextView(TestDetails.this);
b2.setPadding(10, 30, 110, 30);
String stime2 = jsonObject1.getString("test_price");
b2.setText(stime2);
b2.setTextColor(Color.BLACK);
b2.setBackgroundColor(Color.rgb(144, 202, 249));
b2.setTextAlignment(View.TEXT_ALIGNMENT_CENTER);
b2.setTextSize(15);
tr.addView(b2);
tv.addView(tr);
final View vline1 = new View(TestDetails.this);
vline1.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.FILL_PARENT, 1));
vline1.setBackgroundColor(Color.rgb(1, 132, 143));
tv.addView(vline1);
}
}
} catch (JSONException e) {
progressDialog.dismiss();
Toast.makeText(getApplicationContext(),"Unable to display data. Check internet connection",Toast.LENGTH_LONG);
Log.e("Error", "Failed" +e.toString());
e.printStackTrace();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
progressDialog.dismiss();
Toast.makeText(getApplicationContext(),"Unable to display data. Check internet connection", Toast.LENGTH_LONG);
Log.e("Error", "Try Later" +error.toString());
}
});
RequestQueue requestQueue = Volley.newRequestQueue(TestDetails.this);
requestQueue.add(stringRequest);
자세히 설명해 주시겠습니까? 나는 uint를 얻는다. –
@AparnaMutnalkar 처음에는 JSON 응답을 확인한다. –
자, 내가 0에서 루프를 시작한다는 것을 의미합니다. –