2014-01-20 28 views
0

在这里,我创建了一个简单的Droid LoginApp,它简单地告诉登录成功与否。但是if语句并没有给我想要的结果。
以下是代码:

MainActivity.java如果Android中的Else语句不起作用

package com.example.login1; 

import android.os.Bundle; 
import android.app.Activity; 
import android.view.Menu; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.Toast; 

public class MainActivity extends Activity implements OnClickListener 
{ 
public EditText t1,t2; 
public Button b1; 
String user,pass; 

@Override 
protected void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    t1=(EditText)findViewById(R.id.editText1); 
    t2=(EditText) findViewById(R.id.editText2); 
    b1= (Button) findViewById(R.id.button1); 

} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) 
    { 

    getMenuInflater().inflate(R.menu.main, menu); 
    return true; 
} 

@Override 
public void onClick(View arg0) 
{ 
    user = t1.getText().toString(); 
    pass = t2.getText().toString(); 


     if (((user.equals("user")) && (pass.equals("user")))) 
      { 
      Toast.makeText(this, "Login Sucessful", Toast.LENGTH_SHORT).show(); 
      } 
     else 
    { 
     Toast.makeText(this, "Sorry", Toast.LENGTH_SHORT).show(); 
     t1.setText(""); 
     t2.setText(""); 

    } 

} 
} 

activity_main.xml中

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:gravity="fill_vertical" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
tools:context=".MainActivity" > 

<TextView 
    android:id="@+id/textView1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentTop="true" 
    android:layout_marginLeft="29dp" 
    android:layout_marginTop="28dp" 
    android:text="Username" 
    android:textAppearance="?android:attr/textAppearanceLarge" /> 

<EditText 
    android:id="@+id/editText1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/textView1" 
    android:layout_centerHorizontal="true" 
    android:ems="10" 
    android:inputType="text" > 

    <requestFocus /> 

</EditText> 

<TextView 
    android:id="@+id/textView2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignRight="@+id/textView1" 
    android:layout_below="@+id/editText1" 
    android:layout_marginTop="53dp" 
    android:text="Password" 
    android:textAppearance="?android:attr/textAppearanceLarge" /> 

<EditText 
    android:id="@+id/editText2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@+id/editText1" 
    android:layout_centerVertical="true" 
    android:ems="10" 
    android:inputType="textPassword" /> 




<Button 
    android:id="@+id/button1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/textView2" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="86dp" 
    android:clickable="true" 
    android:onClick="onClick" 
    android:text="Login" /> 


</RelativeLayout> 

当我运行应用程序,在单击登录按钮,if语句没有给出正确的结果..我根本不知道错误在哪里。

+0

请告诉我错误或输出 –

+5

字符串比较应该用'.equals()'而不是'=='完成。它应该是'if(user.equals(“user”))'。参见[this](http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java/513839#513839)。 –

+1

我想你有一个更多的支架,你需要'} – LefterisL

回答

4

那么,你应该用比较字符串 “的equals()” 而不是 “==”。

替换:

user == "user" 

有了:

user.equals("user") 

还有,我觉得没有必要为你有这样的额外的行:

if (arg0.findViewById(R.id.button1)==b1) 

^你为什么要检查这个?

+0

我在按钮按下后实际工作时检查if语句,但现在很明显,因为xml文档包含onClick方法,所以在java代码中包含现在没有意义。 – linthum

-1

使用这种代码,点击命令

b1 = (Button) findViewById(R.id.button1); 
b1.setOnClickListener(new OnClickListener() { 

    public void onClick(View v) { 
     user = t1.getText().toString(); 
     if (user.equals("user")){ 
      Toast.makeText(this, "Login Sucessful", Toast.LENGTH_SHORT).show(); 
     } else { 
      Toast.makeText(this, "Sorry", Toast.LENGTH_SHORT).show(); 
     } 
    } 
} 
+1

糟糕的格式。你能编辑你的代码片段吗? – bblincoe

+1

这与用户发布的格式相同@bblincoe –

+2

感谢您的更新。好多了。只是因为OP这样做并没有做到正确。 – bblincoe