Как я могу отобразить список элементов JSON в диалоговом окне оповещения в Android? - PullRequest
0 голосов
/ 22 мая 2019

Теперь у меня есть простой код для диалогового окна Alert и я получаю список имен из ответа JSON. Просто я хочу установить этот адаптивный список имен в диалоговом окне. подскажите пожалуйста как это сделать ..

Ответ:

[
    {
    "id": "1",
    "Name": "A"
    },
    {
    "id": "2",
    "Name": "B"
    },
    {
    "id": "3",
    "Name": "C"
    },
    {
    "id": "4",
    "Name": "D"
    }
]

Извлечение данных из JSON:

 private void loadReasonData() {
    ArrayList<String>ReasonName = new ArrayList<>();
    RequestQueue requestQueue=Volley.newRequestQueue(getContext());
    StringRequest stringRequest=new StringRequest(Request.Method.POST, url_name, new Response.Listener<String>() {
        @Override
        public void onResponse(String response) {
            try{
                JSONArray jsonArray = new JSONArray(response);
                for(int i=0; i<jsonArray.length();i++){
                    JSONObject jsonObject1 = jsonArray.getJSONObject(i);
                    String orderReason = jsonObject1.getString("Name");
                    ReasonName.add(orderReason);
                }
            }catch (JSONException e){e.printStackTrace();}
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            error.printStackTrace();
        }
    });
    requestQueue.add(stringRequest);
}

Код простого оповещения:

 public void alertListView() {
    final CharSequence[] items;
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
    builder.setTitle("Select Reason:");
    builder.setItems(items, new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int item) {
            Toast.makeText(getActivity(),"Name: " + items[item] , Toast.LENGTH_SHORT).show();
            dialog.dismiss();
        }
    }).show();
}

1 Ответ

0 голосов
/ 22 мая 2019

Пожалуйста, попробуйте этот код, это может быть полезно для вас:

public void showdialogWithlist(View view) {

        final String[] items = {"Alex", "Johnny", "John", "Ammy"};
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("List of Items")

                .setItems(items, new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int which) {
                        Toast.makeText(getApplicationContext(), items[which] + " is clicked", Toast.LENGTH_SHORT).show();
                    }
                });

        builder.setPositiveButton("OK", null);
        builder.setNegativeButton("CANCEL", null);
        builder.setNeutralButton("NEUTRAL", null);
        builder.setPositiveButtonIcon(getResources().getDrawable(android.R.drawable.ic_menu_call, getTheme()));
        builder.setIcon(getResources().getDrawable(R.drawable.jd, getTheme()));

        AlertDialog alertDialog = builder.create();

        alertDialog.show();

        Button button = alertDialog.getButton(DialogInterface.BUTTON_POSITIVE);
        button.setBackgroundColor(Color.BLACK);
        button.setPadding(0, 0, 20, 0);
        button.setTextColor(Color.WHITE);
    }
...