进入编辑文本后,TextView无法打印

时间:2014-02-04 02:57:34

标签: java android textview android-edittext

我在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);}
    }

4 个答案:

答案 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( “狗”))