我在MainActivity.java文件中有这个代码,但是当在编辑文本中键入任何值并按下按钮时,相关字符串不会打印。我怎样才能按下按钮,根据编辑文本槽中输入的字符串显示某个文本?
public void ShowAge(View view){
EditText entered = (EditText)findViewById(R.id.typehere);
TextView value = (TextView)findViewById(R.id.answer);
if(entered.getText().toString() == "Dog"){
value.setText(R.string.dog);
Typeface typeFace = Typeface.createFromAsset(getAssets(), "font.ttf");
value.setTypeface(typeFace);}
else if(entered.getText().toString() == "Cat"){
value.setText(R.string.cat);
Typeface typeFace = Typeface.createFromAsset(getAssets(), "font.ttf");
value.setTypeface(typeFace);}
else if(entered.getText().toString() == "Meal"){
value.setText(R.string.meal);
Typeface typeFace = Typeface.createFromAsset(getAssets(), "font.ttf");
value.setTypeface(typeFace);}
else if(entered.getText().toString() == "Chocolate"){
value.setText(R.string.chocolate);
Typeface typeFace = Typeface.createFromAsset(getAssets(), "font.ttf");
value.setTypeface(typeFace);}
else if(entered.getText().toString() == "Froyo"){
value.setText(R.string.froyo);
Typeface typeFace = Typeface.createFromAsset(getAssets(), "font.ttf");
value.setTypeface(typeFace);}
}
答案 0 :(得分:2)
使用
entered.getText().toString().equals("Some String") {...
而不是
entered.getText().toString() == "Some String" {...
总是在比较字符串时。
答案 1 :(得分:1)
您应该使用String.equals()来比较字符串。这将比较String中的字符。等于运算符(==
)比较内存位置,这是不同的。
答案 2 :(得分:0)
就像上面的答案一样,如果你想比较不区分大小写,你应该使用String.equals()或String.equalsIgnoreCase()。
还要考虑使用TextWatcher来监控EditText中输入的文本:
例如:
...
@Override
public void afterTextChanged(Editable s){
if (s == null || TextUtils.isEmpty(s.toString().trim())) {
return;
}
String enteredText = s.toString();
if(TextUtils.isEmpty(enteredText)){
return;
}
int resString = -1;
String font = "font.ttf";
if(enteredText.equals("Dog")){
resString = R.string.dog;
}
else if(enteredText.equals("Cat")){
resString = R.string.cat;
}
else if(enteredText.equals("Meal")){
resString = R.string.meal;
}
else if(enteredText.equals("Chocolate")){
resString = R.string.chocolate;
}
else if(enteredText..equals("Froyo")){
resString = R.string.froyo;
}
if(resString>0){
Typeface typeFace = Typeface.createFromAsset(getAssets(), font);
value.setText(R.string.froyo);
value.setTypeface(typeFace);
}
}
...
答案 3 :(得分:0)
使用 如果(entered.getText()。的toString()。equalsIgnoreCase( “狗”))