M2G*_*2Gd 9 java string android
我试图比较两个edittext框的值.我想要的是比较passw1 = passw2.因为我的代码现在比较我输入的两个字符串,因为我无法比较它们.
final EditText passw1= (EditText) findViewById(R.id.passw1);
final EditText passw2= (EditText) findViewById(R.id.passw2);
Button buttoks = (Button) findViewById(R.id.Ok);
buttoks.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
if (passw1.toString().equalsIgnoreCase("1234") && passw2.toString().equalsIgnoreCase("1234")){
Toast.makeText(getApplication(),"Username and password match", Toast.LENGTH_SHORT).show();
}
else {
Toast.makeText(getApplication(),"Username and password doesn't match", Toast.LENGTH_SHORT).show();
}
} });
Run Code Online (Sandbox Code Playgroud)
And*_*ell 34
使用==运算符将比较字符串的引用而不是字符串本身.
好的,你必须toString()可编辑.我加载了一些处理这种情况之前的代码.
String passwd1Text = passw1.getText().toString();
String passwd2Text = passw2.getText().toString();
if (passwd1Text.equals(passwd2Text))
{
}
Run Code Online (Sandbox Code Playgroud)
mrP*_*jer 17
[编辑]我之前犯了一个错误,因为要获得文本,你需要使用.getText().toString().
这是一个完整的工作示例:
package com.psegina.passwordTest01;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.Toast;
public class Main extends Activity implements OnClickListener {
LinearLayout l;
EditText user;
EditText pwd;
Button btn;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
l = new LinearLayout(this);
user = new EditText(this);
pwd = new EditText(this);
btn = new Button(this);
l.addView(user);
l.addView(pwd);
l.addView(btn);
btn.setOnClickListener(this);
setContentView(l);
}
public void onClick(View v){
String u = user.getText().toString();
String p = pwd.getText().toString();
if( u.equals( p ) )
Toast.makeText(getApplicationContext(), "Matches", Toast.LENGTH_SHORT).show();
else
Toast.makeText(getApplicationContext(), user.getText()+" != "+pwd.getText(), Toast.LENGTH_SHORT).show();
}
}
Run Code Online (Sandbox Code Playgroud)
原始答案(由于缺少toString()而无法工作)
尝试使用.getText()而不是.toString().
if( passw1.getText() == passw2.getText() )
#do something
Run Code Online (Sandbox Code Playgroud)
.toString()返回整个对象的String表示,这意味着它不会返回您在字段中输入的文本(通过添加将显示.toString()输出的Toast来查看)
在onclik函数中用这一行替换第一行你一定会得到正确的结果.
if(passw1.getText().toString().equalsIgnoreCase("1234")&& passw2.getText().toString().equalsIgnoreCase("1234")){
| 归档时间: |
|
| 查看次数: |
112253 次 |
| 最近记录: |