Android中的IF / ELSE密码

时间:2013-05-28 13:41:25

标签: java android

我对Android编程很新,所以如果这是一个愚蠢的查询,请原谅我。

我有一个用于密码字段的Edittext和一个用于提交密码的按钮。我还有一些隐藏的Textview(显示密码是否正确/不正确),我想使用if / else语句将其显示为可见。

当我运行代码(在AVD上)时,单击提交按钮时没有任何反应。永远,永远。

知道这可能非常简单,但在类似的问题上查看其他答案没有任何帮助,我一直在努力弄清楚我做错了什么..

..所以任何帮助真的很感激。谢谢!! :D

- 我使用Eclipse和Android 4.2.2

这是Java部分:

final TextView success = (TextView) findViewById(R.id.textView1);
final TextView failure = (TextView) findViewById(R.id.textView2);
Button firstButton = (Button)findViewById(R.id.button1);
final EditText userPassword  = (EditText)findViewById(R.id.passwordField);
firstButton.setOnClickListener(
new View.OnClickListener(){
    public void onClick(View v){ 
        if(userPassword.getText().toString() == "pa$$word"){
            success.setVisibility(View.VISIBLE);
        }
        else{
           failure.setVisibility(View.VISIBLE);
        }
    }
});

XML:

<Button android:layout_height="wrap_content" 
android:layout_width="wrap_content" 
android:text="@string/button" 
android:layout_marginBottom="75dp" 
android:layout_centerHorizontal="true" 
android:layout_alignParentBottom="true" 
android:id="@+id/button1"/> 

<EditText android:layout_height="wrap_content" 
android:layout_width="wrap_content" 
android:layout_centerHorizontal="true" 
android:id="@+id/passwordField" 
android:inputType="textPassword" 
android:ems="10" 
android:layout_above="@+id/button1"> 

<requestFocus/> 
</EditText> 
<TextView android:layout_height="wrap_content"
 android:layout_width="wrap_content"
 android:text="@+string/pwCorrect"
 android:layout_marginBottom="124dp"
 android:layout_centerHorizontal="true"
 android:id="@+id/textView1"
 android:layout_above="@+id/passwordField"
 android:visibility="gone"/> 

<TextView android:layout_height="wrap_content"
android:layout_width="wrap_content" 
android:text="@+string/pwIncorrect" 
android:layout_centerHorizontal="true" 
android:id="@+id/textView2" 
android:visibility="gone" 
android:layout_centerVertical="true"/>

5 个答案:

答案 0 :(得分:2)

 if(userPassword.getText().toString() == "pa$$word"){
java中的

String必须与equalsequalsIgnoreCase进行比较。使用==,您将比较字符串的地址

答案 1 :(得分:2)

将字符串与equalsequalsIgnoreCase

进行比较

试试这个

if(userPassword.getText().toString().equals("pa$$word"))

答案 2 :(得分:0)

在比较Java中的字符串时,您需要使用以下语法:

if(userPassword.getText().toString().equals("pa$$word"))

另外,我认为final上不需要EditTexts

答案 3 :(得分:0)

使用此功能,有时密码是带字母大写字母的字母,所以最好使用equalsIgnoreCase

if(userPassword.getText().toString().equalsIgnoreCase("pa$$word"))

答案 4 :(得分:0)

使用此代码段

if(userPassword.getText().toString().equalsIgnoreCase("your valid passwor")){

    // do something 

}否则{

 //wrong password

}

享受:) 请不要忘记给+1