findviewbyid不工作。使用gettext并打印结果时它不打印任何东西

时间:2017-10-27 20:06:48

标签: android

一切都井然有序。但是,当我使用gettext并打印结果时,它不会打印任何东西。请帮忙。我认为它没有检测到edittext字段。我错过了什么。以下是代码

activity_login.java

public class Activity_Login extends AppCompatActivity {

     EditText userEmail,userPassword;
     static String email;
     String password;

     @Override
     protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
           setContentView(R.layout.activity_login);


         userEmail = (EditText) findViewById(R.id.et_Login_email);
         userPassword = (EditText) findViewById(R.id.et_Login_password);
          Button login = (Button) findViewById(R.id.btn_Login_login);
          Button register = (Button) findViewById(R.id.btn_Login_signUp);

          email = userEmail.getText().toString();
          password = userPassword.getText().toString();
          System.out.println("-*-*-*-Activity_login-*-*-*");
          System.out.println(email);
          System.out.println(password);
          System.out.println("-*-*-*-Activity_login-*-*-*");

activity_login.xml

<EditText
    android:id="@+id/et_Login_email"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:ems="10"
    android:inputType="textEmailAddress"
    android:hint="Email"
    android:textSize="15sp"
    tools:layout_constraintRight_creator="1"
    tools:layout_constraintBottom_creator="1"
    app:layout_constraintBottom_toTopOf="@+id/et_Login_password"
    android:layout_marginStart="57dp"
    android:layout_marginEnd="57dp"
    app:layout_constraintRight_toRightOf="parent"
    tools:layout_constraintLeft_creator="1"
    android:layout_marginBottom="14dp"
    app:layout_constraintLeft_toLeftOf="parent" />

<EditText
    android:id="@+id/et_Login_password"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:inputType="textPassword"
    android:textSize="15sp"
    android:hint="Password"
    tools:layout_constraintRight_creator="1"
    tools:layout_constraintBottom_creator="1"
    app:layout_constraintBottom_toTopOf="@+id/btn_Login_login"
    app:layout_constraintRight_toRightOf="@+id/et_Login_email"
    tools:layout_constraintLeft_creator="1"
    android:layout_marginBottom="7dp"
    app:layout_constraintLeft_toLeftOf="@+id/et_Login_email"
    app:layout_constraintHorizontal_bias="0.0" />

2 个答案:

答案 0 :(得分:1)

您正在onCreate方法中获取EditText保存的文本。这是活动初始化和创建时的点,此时EditText不可能包含任何文本,除非您在布局中对其进行硬化。相反,您可以创建一个按钮,例如(在我假设的情况下登录),它将执行您的逻辑。

答案 1 :(得分:0)

这是一个例子。

XML

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.ginsbma.runningapps.MainActivity">



    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/edit"/>

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/button"
        android:text="press me"
        android:layout_below="@id/edit"/>

</RelativeLayout>

代码

    final EditText edit = (EditText) findViewById(R.id.edit);
Button button = (Button) findViewById(R.id.button);
System.out.println(edit.getText().toString().trim());

button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Toast.makeText(MainActivity.this, edit.getText().toString(), Toast.LENGTH_SHORT).show();

        System.out.println(edit.getText().toString().trim());

    }
});

一开始不打印任何内容。如果您在编辑文本中键入任何内容然后按下按钮,它将打印出您写的任何内容并在屏幕上将其烘烤。

快乐编码