我正在处理应用程序的“登录”页面。我想将硬编码值与用户名,密码作为输入进行比较。 目前使用的代码行是:
usr = (EditText) findViewById(R.id.usr);
pwd = (EditText) findViewById(R.id.pwd);
error = (TextView) findViewById(R.id.tv_error);
String n1="i077653" ;
if(n1.equals(usr.getText().toString()) && pwd.equals("1234"))
{ error.setText("login success"); }
else { error.setText("LOGIN failed"); }
.
但它不起作用。你能建议一个解决方案吗?
完整代码: XML文件:
XML file :<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: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="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:background="#FF6633"
android:paddingLeft="60dp"
android:paddingRight="100dp"
android:text="@string/SA" />
<TextView
android:id="@+id/tv_pw"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/pwd"
android:layout_alignBottom="@+id/pwd"
android:layout_alignLeft="@+id/tv_un"
android:text="Password:"
android:textColor="#444444"
android:textSize="7pt" />
<TextView
android:id="@+id/tv_un"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/usr"
android:layout_alignBottom="@+id/usr"
android:layout_alignParentLeft="true"
android:text="User Name:"
android:textColor="#444444"
android:textSize="7pt" />
<EditText
android:id="@+id/usr"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/btn_login"
android:layout_below="@+id/textView1"
android:layout_marginTop="20dp"
android:ems="7"
android:hint="@string/User" >
<requestFocus />
</EditText>
<EditText
android:id="@+id/pwd"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/usr"
android:layout_below="@+id/usr"
android:layout_marginTop="18dp"
android:ems="7"
android:hint="@string/Pwd"
android:inputType="textPassword" />
<Button
android:id="@+id/btn_login"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/pwd"
android:layout_marginTop="18dp"
android:layout_toRightOf="@+id/tv_un"
android:text="@string/Button" />
<TextView
android:id="@+id/tv_error"
android:layout_width="fill_parent"
android:layout_height="40dip"
android:textSize="7pt"
android:layout_alignParentLeft="true"
android:layout_below="@id/btn_login"
android:layout_marginRight="9dip"
android:layout_marginTop="15dip"
android:layout_marginLeft="15dip"
android:textColor="#AA0000"
android:text=""/>
</RelativeLayout>
Java文件:
package com.example.survey;
import android.os.Bundle;
import android.app.Activity;
import android.text.Editable;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends Activity {
EditText usr ;
EditText pwd ;
Button log;
TextView error;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
public void check(View view){
usr = (EditText) findViewById(R.id.usr);
pwd = (EditText) findViewById(R.id.pwd);
error = (TextView) findViewById(R.id.tv_error);
String n1="i077653" ;
if(n1.equalsIgnoreCase(usr.getText().toString()) && pwd.equalsIgnoreCase("1234"))
{ error.setText("login success"); }
else { error.setText("LOGIN failed"); }
}
}
答案 0 :(得分:1)
将您的代码更改为:
if(n1.equals(usr.getText().toString()) && (pwd.getText().toString()).equals("1234"))
这里pwd是编辑文本变量。它包含其refferance而不是输入的值。
编辑:()
公共类MainActivity扩展Activity { EditText usr; EditText pwd; 按钮日志; TextView错误;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
usr = (EditText) findViewById(R.id.usr);
pwd = (EditText) findViewById(R.id.pwd);
error = (TextView) findViewById(R.id.tv_error);
log=(Button) findViewById(R.id.tv_log);
String n1="i077653" ;
log.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
if(n1.equalsIgnoreCase(usr.getText().toString()) &&(pwd.getText().toString()).equalsIgnoreCase("1234"))
{
error.setText("login success");
}
else{
error.setText("LOGIN failed");
}
}
});
}//end of oncreate
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
建议:请遵循此tutorial
答案 1 :(得分:0)
尝试
if(n1.equalsIgnoreCase(usr.getText().toString()) && pwd.equalsIgnoreCase("1234"))
{ error.setText("login success"); }
else { error.setText("LOGIN failed"); }
但仅当User = i077653 AND password = 1234时才会阻止登录 如果你想“如果用户= i077653或密码= 1234”改变&amp;&amp;与||
答案 2 :(得分:0)
String n1="i077653" ;
if(n1.equals(usr.getText().toString()) && pwd.equals("1234"))
{ error.setText("login success"); }
else { error.setText("LOGIN failed"); }
在某些事件(例如onclick或其他事件
)上尝试使用此代码答案 3 :(得分:0)
if(n1.equals(usr.getText().toString()) && "1234".equals(pwd.getText().toString())){
// login success
}else{
...
}