在Android中基于截击响应设置TextView
我在应用程序中使用了在Android中基于截击响应设置TextView,android,android-volley,android-json,Android,Android Volley,Android Json,我在应用程序中使用了Volley。我从Volleyresponse中获得姓名、电子邮件、电话值。条件是姓名和电子邮件值为空,我想在TextView中设置phone值。如果name和phone值为empty,我想在TextView中设置email。如果phone和email为空,我想在TeextView中设置name。 这是JSON响应 { "id": 25, "email": "aa@gmail.com", "phone": null, "full_name":
Volley
。我从Volleyresponse
中获得姓名、电子邮件、电话
值。条件是姓名
和电子邮件
值为空
,我想在TextView
中设置phone
值。如果name
和phone
值为empty
,我想在TextView中设置email
。如果phone
和email
为空,我想在TeextView中设置name
。这是
JSON
响应
{
"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();
}
}
JsonObjectRequest foodie\u request=newjsonobjectrequest(request.Method.GET,url,null,new Response.Listener()){
@凌驾
公共void onResponse(JSONObject响应)
{
试一试{
String fullName=response.getString(“全名”);
String phone=response.getString(“phone”);
String email=response.getString(“email”);
if(email.trim().equals(“”)&&fullName.trim().equals(“”)
{
entry.setName(电话);
}
else if(phone==null&&fullName.trim().equals(“”)
{
entry.setName(电子邮件);
}
else if(email.trim().equals(“”&&phone==null){
entry.setName(全名);
}
//progressDialog.disclose();
adapter.notifyDataSetChanged();
}捕获(JSONException e){
e、 printStackTrace();
}
}
如何做到这一点
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)也检查空值,因此无需进一步循环。检查此代码:
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);
首先,根据您的问题,不要从数据库中获取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();
}
}
}
JsonObjectRequest foodie\u request=newjsonobjectrequest(request.Method.GET,url,null,new Response.Listener()){
@凌驾
公共void onResponse(JSONObject响应){
试一试{
String fullName=response.getString(“全名”);
String phone=response.getString(“phone”);
String email=response.getString(“email”);
if(fullName.toString().trim().length()=0&&email.toString().trim().length()=0){
entry.setName(电话);
}else if(fullName.toString().trim().length()=0&&phone.toString().trim().length()=0){
entry.setName(电子邮件);
}else if(phone.toString().trim().length()=0&&email.toString().trim().length()=0){
entry.setName(全名);
}
//progressDialog.disclose();
adapter.notifyDataSetChanged();
}捕获(JSONException e){
e、 printStackTrace();
}
}
}
尝试使用此功能,希望能有所帮助。这有什么错误?每次都会在文本视图中设置名称(如果响应中可用)。但如果电子邮件和电话可用且名称缺失,则不会设置电子邮件和电话。