Установить TextView на основе ответа залпа в Android - PullRequest
0 голосов
/ 29 мая 2018

Я использую Volley в приложении. Я получаю name,email,phone значения из залпа response. Условие, если значение name и email равно null, я хочу установить значение phoneв TextView .If name и phone значение равно empty, я хочу установить email в TextView.если phone и email пусто, я хочу установить name в TeextView.
Это JSON response

{
    "id": 25,
    "email": "aa@gmail.com",
    "phone": null,
    "full_name": ""
}  

Вот как я проанализировал JSON

 JsonObjectRequest foodie_request = new JsonObjectRequest(Request.Method.GET,url, null, new Response.Listener<JSONObject>() {
                                @Override
                                public void onResponse(JSONObject response)
                                {
                                    try {

                                        String fullName = response.getString("full_name");
                                        String phone=response.getString("phone");
                                        String email=response.getString("email");
                                        if(email.trim().equals("") && fullName.trim().equals(""))
                                        {
                                            entry.setName(phone);
                                        }
                                       else  if(phone==null && fullName.trim().equals(""))
                                        {
                                            entry.setName(email);
                                        }
                                        else if(email.trim().equals("") && phone==null  ) {
                                            entry.setName(fullName);
                                        }

                                       // progressDialog.dismiss();
                                        adapter.notifyDataSetChanged();
                                    } catch (JSONException e) {
                                        e.printStackTrace();
                                    }
                                }  

Как это сделать?

Ответы [ 3 ]

0 голосов
/ 29 мая 2018

Проверьте этот код:

if(fullName.isEmpty() && fullName != null && email.isEmpty() && email != null)
    textView.setText(phone);
if(fullName.isEmpty() && fullName != null && phone.isEmpty() && phone != null)
    textView.setText(email);
if(email.isEmpty() && email != null && phone.isEmpty() && phone != null)
    textView.setText(fullName);
0 голосов
/ 29 мая 2018

Прежде всего, не получайте значение null из базы данных по вашему вопросу, в противном случае вы получите NullPointerException, получите пустую строку и попробуйте эту.

JsonObjectRequest foodie_request = new JsonObjectRequest(Request.Method.GET, url, null, new Response.Listener<JSONObject>() {
            @Override
            public void onResponse(JSONObject response) {
                try {

                    String fullName = response.getString("full_name");
                    String phone = response.getString("phone");
                    String email = response.getString("email");

                    if (fullName.toString().trim().length() == 0 && email.toString().trim().length() == 0) {
                        entry.setName(phone);
                    } else if (fullName.toString().trim().length() == 0 && phone.toString().trim().length() == 0) {
                        entry.setName(email);
                    } else if (phone.toString().trim().length() == 0 && email.toString().trim().length() == 0) {
                        entry.setName(fullName);
                    }

                    // progressDialog.dismiss();
                    adapter.notifyDataSetChanged();
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }
        }

Попробуйте использовать это, надеюсь, это поможет.

0 голосов
/ 29 мая 2018
 if(TextUtils.isEmpty(email) && TextUtils.isEmpty(fullName)) {
            entry.setText(phone);
        }
        else if(TextUtils.isEmpty(phone) && TextUtils.isEmpty(fullName))
        {
            entry.setText(email);
        }
        else if(TextUtils.isEmpty(email) && TextUtils.isEmpty(phone)) {
            entry.setText(fullName);
        }

Попробуйте с этим, TextUtils.isEmpty (str) также проверьте нулевое значение, поэтому нет необходимости в дальнейшем цикле.

...