Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/180.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java EditText中的EditText(android.content.Context)无法应用于(android.view.view)_Java_Android_Android Studio - Fatal编程技术网

Java EditText中的EditText(android.content.Context)无法应用于(android.view.view)

Java EditText中的EditText(android.content.Context)无法应用于(android.view.view),java,android,android-studio,Java,Android,Android Studio,为了安全起见,我正在尝试输入我的应用程序的用户名和密码。我尝试将用户名和密码设置为对象,但它给出了上述错误 有什么线索吗 我正在使用android studio package com.example.xfrehner1.jacksonattendance; import android.content.Intent; import android.support.v7.app.AlertDialog; import android.support.v7.app.AppCompatActivi

为了安全起见,我正在尝试输入我的应用程序的用户名和密码。我尝试将用户名和密码设置为对象,但它给出了上述错误

有什么线索吗

我正在使用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);
        }

    }
}
1.)在类内创建引用,以便稍后在
enterUPButton
函数中使用

public class LogIn extends AppCompatActivity {

    EditText username,password ;
2.)初始化视图内部
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);
}
更新:

newedittext
意味着创建一个
EditText
类的新对象,但是
findViewById(R.id.userEditText)
将返回一个
视图
对象,因此语句将是
newedittext(View)
,但问题是类中没有使用
视图
作为参数的构造函数,所以这里有两个问题

  • 应在
    oncreate中使用
  • EditText
    类中没有将
    View
    对象作为参数的构造函数

password=(EditText)findViewById(R.id.passEditText)
表示我们正在从
XML
获取
EditText
对象标记的引用。您使用的新关键字将创建EditText类型的新对象。 编写代码时:

findViewById(R.id.passEditText)
它从XML返回EditText视图的id。由于它返回一个id,并且您实际上希望代码中有一个EditText变量,因此必须将其强制转换为EditText类型。因此,我们在findviewbyd命令之前添加(EditText)来强制转换它,如下所示:

(EditText) findViewById(R.id.passEditText)
接下来,在java代码中为名为password的变量设置密码,方法是提供如下类型和变量名:

EditText password = (EditText) findViewById(R.id.passEditText);

希望有帮助。

在类中持有全局引用时初始化您的
视图
内部oncreate
EditText password=new EditText(findViewById(R.id.passEditText))
您是怎么想到这个的?你在哪里找到的?谢谢!我这样做了,它不再给我一个错误,但它现在不工作。当我输入列出的使用和通行证,并单击“输入”按钮时,没有发生任何事情—不要紧!它起作用了!非常感谢。你能给我解释一下把新的EditText改成(EditText)到底有什么作用吗?@backwardforward试试更新部分,我很高兴我能帮上忙,很高兴编码