Ich versuche die Werte zweier Edittext-Boxen zu vergleichen. Was ich möchte, ist, einfach passw1 = passw2 zu vergleichen. Da mein Code jetzt zwei Zeichenketten vergleicht, habe ich sie eingegeben, da ich sie nicht vergleichen konnte.
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();
}
} });
[EDIT] Ich habe zuvor einen Fehler gemacht, da Sie zum Abrufen des Textes .getText (). ToString () verwenden müssen.
Hier ist ein vollständiges Arbeitsbeispiel:
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();
}
}
Ursprüngliche Antwort (Funktioniert nicht, weil toString () fehlt)
Versuchen Sie es mit .getText () anstelle von .toString ().
if( passw1.getText() == passw2.getText() )
#do something
.toString () gibt eine String-Darstellung des gesamten Objekts zurück. Dies bedeutet, dass der von Ihnen in das Feld eingegebene Text nicht zurückgegeben wird.
Mit dem Operator == werden die Verweise auf die Zeichenfolgen und nicht auf die Zeichenfolge selbst verglichen.
Ok, du musst toString () die Editierbare. Ich habe etwas von dem Code geladen, den ich zuvor hatte, der sich mit dieser Situation befasste.
String passwd1Text = passw1.getText().toString();
String passwd2Text = passw2.getText().toString();
if (passwd1Text.equals(passwd2Text))
{
}
In der onclik-Funktion ersetzen Sie die erste Zeile durch diese Zeile, und Sie erhalten auf jeden Fall das richtige Ergebnis.
if (passw1.getText (). toString (). equalsIgnoreCase ("1234") && passw2.getText (). toString (). equalsIgnoreCase ("1234")) {
Sie können die Werte mit equals()
von Java vergleichen:
public void onClick(View v) {
// TODO Auto-generated method stub
s1=text1.getText().toString();
s2=text2.getText().toString();
if(s1.equals(s2))
Show.setText("Are Equal");
else
Show.setText("Not Equal");
}
Sie benötigen sowohl getText () - was ein Editable zurückgibt, als auch toString () -, um dies in einen String umzuwandeln, damit es zusammenpasst . Statt also passw1.toString().equalsIgnoreCase("1234")
brauchen Sie passw1.getText().toString().equalsIgnoreCase("1234")
.
sie können String.compareTo (String) verwenden, das eine ganze Zahl zurückgibt, die negativ (<), null (=) oder positiv (>) ist.
Verwenden Sie es so:
Sie können String.compareTo (String) verwenden, das eine ganze Zahl zurückgibt, die negativ (<), null (=) oder positiv (>) ist.
Verwenden Sie es so:
String a="myWord";
if(a.compareTo(another_string) <0){
//a is strictly < to another_string
}
else if (a.compareTo(another_string) == 0){
//a equals to another_string
}
else{
// a is strictly > than another_string
}
Versuchen Sie, zuerst .trim()
vor .equals()
zu verwenden, oder erstellen Sie eine neue String-Variable mit diesen Dingen.
tat das gleiche hier, um "Erfolg" zweimal anzuzeigen. Die Antwort ist die Daten von PHP
String res=response.toString().trim;
Toast.makeText(sign_in.this,res,Toast.LENGTH_SHORT).show();
if ( res.compareTo("success")==0){
Toast.makeText(this,res,Toast.LENGTH_SHORT).show();
}