Java 代码没有在 Android Studio 中启动新活动?和上下文有关吗?
Posted
技术标签:
【中文标题】Java 代码没有在 Android Studio 中启动新活动?和上下文有关吗?【英文标题】:Java code not starting new activity in Android Studio? Is it to do with the context? 【发布时间】:2021-08-20 02:13:24 【问题描述】:代码如下:
public void check(View button) //checks if user's username and password correct
String usernameInput;
String passwordInput;
usernameInput = ((EditText)findViewById(R.id.username)).getText().toString(); //gets user inputs as strings
passwordInput = ((EditText)findViewById(R.id.password)).getText().toString();
Log.d("username input", usernameInput);
Log.d("password input", passwordInput);
if (usernameInput == "user" && passwordInput == "password123") //checks if correct
correct(usernameInput);
else incorrect(button);
public void correct(String usernameInput) //if correct, launches the main activity (main menu) through an intent (see below)
Intent i = new Intent(this, MainActivity.class);
i.putExtra("username", usernameInput); //passes data from LoginRegister activity to MainActivity
startActivity(i);
我正在尝试创建一个登录系统。基本上,当单击按钮时,会调用“检查”方法。检查来自 2 个文本框的用户输入以查看它们是否是正确的用户名和密码;如果是,则调用“正确”方法。到目前为止它工作正常,但由于某种原因,新活动没有开始(没有错误,它只是没有开始)。我已经尝试在Intent i = new Intent(this, MainActivity.class);
行中放置各种上下文,但似乎没有任何效果。请帮忙。
【问题讨论】:
使用usernameInput.equals( "user")
而不是usernameInput == "user"
。在 Java 中,==
检查它们是否是同一个对象而不是它们的相等性。对密码也做同样的事情
@Amin 我的上帝,它有效.. 比预期的要容易,谢谢
【参考方案1】:
您应该使用equals
而不是==
。
==
应在参考比较期间使用。 ==
检查两个引用是否指向相同的位置。另一方面,equals()
方法应该用于内容比较。 equals()
方法评估内容以检查相等性。
所以你应该把你的代码改成:
public void check(View button) //checks if user's username and password correct
String usernameInput;
String passwordInput;
usernameInput = ((EditText)findViewById(R.id.username)).getText().toString(); //gets user inputs as strings
passwordInput = ((EditText)findViewById(R.id.password)).getText().toString();
Log.d("username input", usernameInput);
Log.d("password input", passwordInput);
if (usernameInput.equals("user") && passwordInput.equals("password123")) //checks if correct
correct(usernameInput);
else incorrect(button);
【讨论】:
以上是关于Java 代码没有在 Android Studio 中启动新活动?和上下文有关吗?的主要内容,如果未能解决你的问题,请参考以下文章
是否可以在 Android Studio 中调试 C/C++?