Java 如何检查EditText是否具有特定的文本/字符串

Java 如何检查EditText是否具有特定的文本/字符串,java,android,android-edittext,Java,Android,Android Edittext,大约两个月前我自己开始使用JAVA,所以如果我写了一些愚蠢的东西,我很抱歉:pp 我想我所有的问题都在这里得到了回答,但这次我没有找到我想要的。我的问题是: 我有一个应用程序,只有一个EditText和一个按钮,用户输入一个文本,按钮就会分析它。 我还有两盒,一盒是苹果和橘子,另一盒是柠檬和土豆 如果用户键入:“我想要苹果”,程序会说:“它在方框1内”。 但是用户可以输入他想要的任何东西,但是食物的名称永远不会改变,它将是苹果、橘子、土豆或柠檬。那么我如何对程序说:If(MyEditText包含

大约两个月前我自己开始使用JAVA,所以如果我写了一些愚蠢的东西,我很抱歉:pp

我想我所有的问题都在这里得到了回答,但这次我没有找到我想要的。我的问题是:

我有一个应用程序,只有一个EditText和一个按钮,用户输入一个文本,按钮就会分析它。 我还有两盒,一盒是苹果和橘子,另一盒是柠檬和土豆

如果用户键入:“我想要苹果”,程序会说:“它在方框1内”。 但是用户可以输入他想要的任何东西,但是食物的名称永远不会改变,它将是苹果、橘子、土豆或柠檬。那么我如何对程序说:If(MyEditText包含“apple”),显示框1,else If(MyEditText包含“lemon”)显示框2

我做这个应用是因为我想了解更多关于Android开发的知识。希望我是清楚的


对不起,我的英语不好

我不是安卓开发者,但基于此,您可以尝试以下内容

if(myEditText.getText().toString().contains("apple")){//...

您可以使用
indexOf
方法检查文本中是否存在特定字符串。或者,您也可以使用
contains
方法。如果您希望忽略大小写,请将其全部转换为大写,并进行如下比较:

EditText myEditText = (EditText) findViewById(R.id.edittext);
String myEditTextValue = myEditText.getText().toString();
String valueInUpperCase=myEditTextValue.toUpperCase() 

if(valueInUpperCase.contains("APPLE")) {
    // show box 1
} else if(valueInUpperCase.contains("LEMON")) {
    // show box 2
}


希望这对您有所帮助。

我假设您不希望在用户单击按钮时处理输入。你可以这样做

   btnOK.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View view) {
                String userInput = MyEditText.getText().toString();
                if(userInput.contains("apple")){
                    //Show it is inside box 1
                }else if(userInput.contains("orange")){
                     //Show it is inside box 2
                }
            }
        });
这里btnOK指的是你的按钮,不管你叫它什么。 至于显示信息,我不确定您所说的“我有2个框”是什么意思。如果您所说的框是指已经包含文本(“在框1中”)(“在框2中”)的textView。只需更改“可见性”属性即可。视情况而定

textView1.setVisibility(View.VISIBLE); //textview containing ("it is in box 1")
textView2.setVisibility(View.INVISIBLE);   //textView containing ("it is in box 2")
也可以通过填充文本视图来显示结果
textView.setText(“您的文本”)

希望这有帮助。

试试这个

String enteredText = editText.getText().toString();
if(enteredText.contains("apple")){
    ......
}
else if(enteredText.contains("orange")){
    ......
}

希望这有帮助。

当我说“盒子”时,我指的是现实世界中的盒子,每个盒子里有两种食物,该程序将允许用户找到每种食物的储存位置。很抱歉:)当我在If-else中只使用一个条件时,它可以正常工作,我需要创建一个字符串,以便像R9j一样在各种条件下使用它。谢谢你的帮助@MurilloHenrique我假设既然你学习java已经2个月了,你必须知道
if(condition){doIfConditionIstrue;}else{doIfConditionIsFalse;}
所以我的答案中没有包含
else
部分,假设这是显而易见的。我的错误:)@Pshemo对不起,我不清楚。您在if-else中所做的工作非常好,但不适用于逻辑运算符,如果以前没有创建字符串,IDE会给出错误,因此如果我这样做,您所做的工作将不起作用:if(myEditText.getText().toString().contains(“apple”)&&myEditText.getText.toString.contains(“orange”)){…@MurilloHenrique对不起,但是不应该有
myEditText.getText().toString().contains(“橙色”)
而不是
myEditText.getText.toString.contains(“橙色”)
-我在调用方法的地方添加了一些()。而且我不是说
if(myEditTex…contains(“apple”)和&myEditTex…contains(“橙色”))
因为您已经提到了
If(MyEditText包含“apple”){show box 1}else If(MyEditText包含“lemon”){show box 2}
。没问题,很高兴知道Java在Android上也能正常工作:)让我看看我是否正确,如果我使用大写字母,Apple将等同于Apple等等?这将对我帮助很大!可能有人在某处使用了indexOf,我会搜索它,这正是我想到的,比较EditText中的一个特殊字符串。Th谢谢你的帮助!