将可编辑内容转换为字符串时出现问题(用户名/密码测试)

发布于 2024-12-28 20:37:17 字数 1482 浏览 1 评论 0原文

我正在尝试创建一个简单的用户名/密码登录屏幕。我已经完成布局,现在,我正在尝试设置它,以便当用户名 (EditText) == "crete" 时,它应该执行某些操作。这是我的代码...:

public class Login extends Activity {
   public static EditText username, password;
   public Button loginbutton;
   boolean accessgranted;
   public String dbu, dbp, user1;

   @Override
   public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.login);

       username = (EditText) this.findViewById(R.id.username);
       password = (EditText) this.findViewById(R.id.password);        
       loginbutton = (Button) this.findViewById(R.id.loginbutton);

       user1 = "crete";

       loginbutton.setOnClickListener(new View.OnClickListener() {
         public void onClick(View v) {
            try{
               dbu = (username.getText()).toString();
            }
            finally{
               if (dbu == user1){
                   username.setText("SUCCESS");
               }
            }
         }
       });
    }
}   

遗憾的是,这不起作用。它正确地将其转换为字符串(我认为),因为当我测试此代码时:

 loginbutton.setOnClickListener(new View.OnClickListener() {
     public void onClick(View v) {
        try{
              dbu = (username.getText()).toString();
        }
        finally{
                username.setText("done" + dbu);
            }
        }

     }
});

它正确输入您在 EditText 中输入的内容,加上单词“done”。

创建 if-then 语句似乎有问题?

I'm trying to create a simple username/password login screen. I have the layout done, and right now, I'm trying to set it so when the username (EditText) == "crete", then it should do something. Here is my code...:

public class Login extends Activity {
   public static EditText username, password;
   public Button loginbutton;
   boolean accessgranted;
   public String dbu, dbp, user1;

   @Override
   public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.login);

       username = (EditText) this.findViewById(R.id.username);
       password = (EditText) this.findViewById(R.id.password);        
       loginbutton = (Button) this.findViewById(R.id.loginbutton);

       user1 = "crete";

       loginbutton.setOnClickListener(new View.OnClickListener() {
         public void onClick(View v) {
            try{
               dbu = (username.getText()).toString();
            }
            finally{
               if (dbu == user1){
                   username.setText("SUCCESS");
               }
            }
         }
       });
    }
}   

this, sadly, doesn't work. It correctly converts it to a string (i think) because when I tested this code out :

 loginbutton.setOnClickListener(new View.OnClickListener() {
     public void onClick(View v) {
        try{
              dbu = (username.getText()).toString();
        }
        finally{
                username.setText("done" + dbu);
            }
        }

     }
});

It correctly enters what you entered into the EditText, plus the word "done".

There seems to be a problem with creating if-then statements??

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

¢好甜 2025-01-04 20:37:17

您可以使用 .equals("String") 方法测试 String 相等性。

使用 == 您可以测试对象的引用是否相等。

You test for String equality with the method .equals("String").

With == you are testing if the references to the objects are equal.

握住我的手 2025-01-04 20:37:17

尝试使用 equalsIgnoreCase(String) 而不是 == 比较器。

像这样:dbu.equalsIgnoreCase(user1)

Try using equalsIgnoreCase(String) instead of the == comparator.

Like this: dbu.equalsIgnoreCase(user1)

丢了幸福的猪 2025-01-04 20:37:17

dubuser1 是两个独立的 String 对象。您可以这样比较它们:dbu == user1。这将始终返回 false。相反,请将其替换为 dbu.equals(user1)

dub and user1 are two separate String objects. You're comparing them like this: dbu == user1. This will always return false. Instead, replace it with dbu.equals(user1).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文