当前位置: 首页 > 知识库问答 >
问题:

文本视图在输入编辑文本后不打印

林蕴藉
2023-03-14

我在我的Main Activity.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);}
        }

共有3个答案

东方和志
2023-03-14

就像上面的答案一样,如果你想比较不区分大小写,你应该使用String.equals()或String.equalsIgnoreCase()。

同时考虑使用TexWATTHER监控您的编辑文本中输入的文本:

前任:

    ...
@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);
        }
}
...
刘星火
2023-03-14

你应该使用String.equals()来比较字符串。这将比较字符串中的字符。equals运算符(=)比较内存位置,这是不同的。

裴韬
2023-03-14

使用

 entered.getText().toString().equals("Some String")  {...

而不是

entered.getText().toString() == "Some String" {...

总是当你比较字符串。

 类似资料:
  • 我想将文本从软键盘输入到popupwindow中的Edittext小部件,但我遇到了一些问题。我的活动是一个游戏卡桌,并在上面启用一些动画。在游戏表中,有一些按钮。如果玩家点击某个按钮,将显示一个弹出窗口。问题是播放器无法在弹出窗口中输入文本到Edittext。我发现了一些类似的问题,最流行的建议是: 使用此设置,我可以正常输入Edittext。但是,这将阻止主UI线程并导致停止游戏表中的动画。我

  • 我正在开发一个Android聊天应用程序。一切运作良好,但除了一件事;我想设置一个布局的可见性消失,然后设置一个不同的布局可见时,用户开始输入编辑文本,就像在WhatsApp上实现的。但是我似乎想不明白。任何帮助都将不胜感激 基本上,我想做的是设置一个布局的可见性,该布局包含一个图像按钮,用于将图像上载到gone,然后显示一个布局,该布局包含一个图像按钮,用于在用户开始键入时将edittext中的

  • 我一直有一些来自EditText的奇怪行为的问题。setSelect,我希望你们都能帮忙! 我正在开发的应用程序有一个搜索字段,需要让它的行为非常类似于浏览器的搜索栏。例如,如果用户键入“fo ”,我们希望EditText自动完成“foobar ”,并突出显示自动完成的“obar”文本,以便在自动完成的文本与用户想要键入的内容不匹配时,用户可以很容易地替换它。 为了实现这一点,我设置了一个带有Te

  • 我想在用户在EditText中键入文本时将文本放入我的应用程序中的某个字符串中,并使用它来生动地在活动上显示它(在不同的视图中...) - 就像谷歌的实时/即时搜索工作一样...

  • 我已经试着解决了好几个小时了,但还是没能解决。我设置了这个editText,称为活动上的布局,并将其连接到活动上的变量,当您单击字段时,它会打开可视键盘,但当您按下一个键时,它会将您带到类似浏览器的搜索屏幕,而不只是更新editText的文本。 在我的xml编辑文本是: 在我这样做的活动中 我还是找不到办法让它不发生。你能帮助我吗?

  • 我是一个机器人初学者。我陷入了一个问题。我有三,我需要对它们进行验证。当我进行验证时,即使我在运行应用程序时没有输入任何值,EditText 也有一个值。为了检查哪个值是否存在,我使用 打印了这些值。 这是打印在日志中 这些价值观从何而来?请帮我解决这个问题。 提前感谢:)