为什么我的这部分代码没有遵循循环?
why is this part of my code not following the loop?
我正在开发一个应用程序,它接收用户的输入并将其添加到 android 中的列表视图。
我决定要制作一个控件来防止用户向列表中添加空字符串,因为这会使屏幕变得毫无用处。我为此编写了这段代码。
public void addClaims(View v){
ClaimListController ct = new ClaimListController();
EditText textView = (EditText) findViewById(R.id.add_claim_field);
String added = textView.getText().toString();
if (added != ""){
final String t = format("added",added);
ct.addClaim(new Claim(added));
Toast.makeText(this, t, Toast.LENGTH_SHORT).show();
textView.setText("");
//Intent intent = new Intent(MainActivity.this, AddClaim.class);
//startActivity(intent);
}else{
Toast.makeText(AddClaim.this,"Please type something before adding", Toast.LENGTH_SHORT).show();
}
}
private String format(String string, String added) {
String formats = string +" "+ added;
return formats;
}
然而,if(){}
循环从未被检查过。我尝试将空字符串更改为 "test" 并在应用程序中添加测试,它仍然有效。是什么导致代码不检查 IF
和 ELSE
条件?
我不是在问如何比较字符串。我在问为什么会出现这个问题。我没想到这是一个字符串比较问题。
您使用的if
条件不会returntrue
。改用这个:
if (!TextUtils.isEmpty(added))
当您在任何类型的对象上使用 != 运算符时,您会比较引用,因为您在 if 语句中创建了一个新实例,所以引用将始终不同。
您可以改用这个
if(added.equals(""))
我正在开发一个应用程序,它接收用户的输入并将其添加到 android 中的列表视图。
我决定要制作一个控件来防止用户向列表中添加空字符串,因为这会使屏幕变得毫无用处。我为此编写了这段代码。
public void addClaims(View v){
ClaimListController ct = new ClaimListController();
EditText textView = (EditText) findViewById(R.id.add_claim_field);
String added = textView.getText().toString();
if (added != ""){
final String t = format("added",added);
ct.addClaim(new Claim(added));
Toast.makeText(this, t, Toast.LENGTH_SHORT).show();
textView.setText("");
//Intent intent = new Intent(MainActivity.this, AddClaim.class);
//startActivity(intent);
}else{
Toast.makeText(AddClaim.this,"Please type something before adding", Toast.LENGTH_SHORT).show();
}
}
private String format(String string, String added) {
String formats = string +" "+ added;
return formats;
}
然而,if(){}
循环从未被检查过。我尝试将空字符串更改为 "test" 并在应用程序中添加测试,它仍然有效。是什么导致代码不检查 IF
和 ELSE
条件?
我不是在问如何比较字符串。我在问为什么会出现这个问题。我没想到这是一个字符串比较问题。
您使用的if
条件不会returntrue
。改用这个:
if (!TextUtils.isEmpty(added))
当您在任何类型的对象上使用 != 运算符时,您会比较引用,因为您在 if 语句中创建了一个新实例,所以引用将始终不同。
您可以改用这个
if(added.equals(""))