为了安全起见,我正在尝试输入用户名和密码来输入我的应用。我尝试将用户名和密码设置为对象,但它给了我上述错误。
任何线索?
我正在使用android studio
package com.example.xfrehner1.jacksonattendance;
import android.content.Intent;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
public class LogIn extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_log_in);
}
/*Creates objects for the username and password*/
EditText username = new EditText(findViewById(R.id.userEditText));//it highlights this red
EditText password = new EditText(findViewById(R.id.passEditText));//this too
//AlertDialog wrongUP = new AlertDialog.Builder(LogIn.this).create();
//wrongUP.setTitle("Error");
public void enterUPButton(View v){
Intent afterLog= new Intent(this, firstScreen.class);
if(username.getText().toString().equals("admin") && password.getText().toString().equals("Password1234")){
startActivity(afterLog);
}else{
System.exit(0);
}
}
}
答案 0 :(得分:2)
1。)在类中创建引用,以便稍后在'customHeader':'token'
函数
enterUPButton
2。)初始化public class LogIn extends AppCompatActivity {
EditText username,password ;
onCreate
更新:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_log_in);
username = (EditText)findViewById(R.id.userEditText);
password = (EditText)findViewById(R.id.passEditText);
}
表示创建new EditText
类的新对象,但EditText
将返回findViewById(R.id.userEditText)
对象,因此语句将为View
,但问题在那里在EditText
类中没有使用new EditText(View)
作为参数的构造函数,所以这里有两个问题,
findViewById
应在View
oncreate
类中没有构造函数将EditText
对象作为参数 View
表示我们从password = (EditText)findViewById(R.id.passEditText);
获取EditText
对象标记的引用。
答案 1 :(得分:1)
您使用的新关键字会创建一个EditText类型的新对象。 当你编写代码时:
findViewById(R.id.passEditText)
它从XML返回EditText视图的id。由于它返回一个id并且您实际上想在代码中使用EditText变量,因此必须将其转换为EditText类型。所以我们在findViewById命令之前添加(EditText)来强制转换它,如下所示:
(EditText) findViewById(R.id.passEditText)
接下来,通过提供类似的变量名称,将其设置为java代码中名为password的变量:
EditText password = (EditText) findViewById(R.id.passEditText);
希望有所帮助。