我正在编写一个应用程序,它接受两个用户输入并将它们与存储在数据库中的数据相匹配,并在 TextView
中显示来自用户输入的相应数据(行)。
如果条件为真,则 if 语句可以单独运行。但是,如果我添加 else 语句,即使条件为真,它也不会执行。
如果语句为真或假,则始终执行 else 语句
protected void onPostExecute(Void v) {
// ambil data dari Json database
try {
JSONArray Jarray = new JSONArray(result);
for (int i = 0; i < Jarray.length(); i++) {
JSONObject Jasonobject = null;
//text_1 = (TextView)findViewById(R.id.txt1);
Jasonobject = Jarray.getJSONObject(i);
//get an output on the screen
//String id = Jasonobject.getString("id");
String name = Jasonobject.getString("name");
String db_detail="";
if (et.getText().toString().equalsIgnoreCase(name)) {
db_detail = Jasonobject.getString("detail");
text.setText(db_detail);
break;
} else {
Toast.makeText(MainActivity.this, "Not available", Toast.LENGTH_LONG).show();
break;
}
}
this.progressDialog.dismiss();
最佳答案
你永远不会完全在 Jarray
上循环。如果第一次迭代 et.getText().toString().equalsIgnoreCase(name)
为 false,并且执行了 else 分支,您将立即中断
。
try {
JSONArray Jarray = new JSONArray(result);
for(int i=0;i< Jarray.length(); i++) {
// other code
if(et.getText().toString().equalsIgnoreCase(name)) {
db_detail = Jasonobject.getString("detail");
text.setText(db_detail);
break;
}
}
if (TextUtils.isEmpty(db_detail)) {
// show toast
}
}
关于java - if/else 语句在 android 应用程序中不起作用(else 语句始终执行),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31761525/