简体   繁体   English

EditText始终返回空值

[英]EditText Always returning empty value

I am new in android. 我是android新手。 I'm trying to run a simple android code where I try to get value from a EditText field. 我正在尝试运行一个简单的android代码,在其中尝试从EditText字段获取值。 But every time I am getting empty value. 但是每次我得到空值。 In this code I'm trying to get value of ID field and try to check whether it is empty or not and try to show it in a Toast message. 在这段代码中,我试图获取ID字段的值,并尝试检查它是否为空,并尝试在Toast消息中显示它。 but every time its returning empty. 但每次它返回时都是空的。

activity_main.xml activity_main.xml

    <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout android:layout_width="368dp"
    android:layout_height="495dp"
    xmlns:tools="http://schemas.android.com/tools"
    tools:layout_editor_absoluteX="8dp"
    tools:layout_editor_absoluteY="8dp"
    xmlns:android="http://schemas.android.com/apk/res/android">

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="87dp"
        android:text="Sign In"
        android:textColor="@android:color/black"
        android:textColorLink="@android:color/black"
        android:textSize="25sp" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="43dp"
        android:text="ID"
        android:textColor="@android:color/black"
        android:textSize="18sp"
        android:typeface="normal"
        android:layout_below="@+id/textView"
        android:layout_alignLeft="@+id/textView5"
        android:layout_alignStart="@+id/textView5"
        android:layout_marginLeft="10dp"
        android:layout_marginStart="10dp" />

    <EditText
        android:id="@+id/editText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ems="10"
        android:inputType="textPersonName"
        android:hint="Enter ID"
        android:layout_alignBaseline="@+id/textView2"
        android:layout_alignBottom="@+id/textView2"
        android:layout_alignLeft="@+id/editText2"
        android:layout_alignStart="@+id/editText2" />

    <TextView
        android:id="@+id/textView5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="18sp"
        android:textColor="@android:color/black"
        android:text="Password"
        android:layout_alignBottom="@+id/editText2"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_marginLeft="32dp"
        android:layout_marginStart="32dp" />

    <EditText
        android:id="@+id/editText2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/editText"
        android:ems="10"
        android:hint="Enter Password"
        android:inputType="textPassword" />

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/editText2"
        android:layout_marginTop="32dp"
        android:text="SignIn" />

    <TextView
        android:id="@+id/textView6"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/button"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="54dp"

        android:textColor="@android:color/black"
        android:textSize="18sp" />

</RelativeLayout>

MainActivity.java MainActivity.java

package task.com.helloworld;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    Button button;
    TextView textView;
    EditText editText;

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

        button = (Button)findViewById(R.id.button);
        textView = (TextView)findViewById(R.id.textView6);
        editText = (EditText)findViewById(R.id.editText);

        final String name = editText.getText().toString();
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
               // textView.setText("Hello "+name+", Welcome to Android. ");
                if(TextUtils.isEmpty(name))
                    Toast.makeText(MainActivity.this, "Edit Text is Empty", Toast.LENGTH_LONG).show();
                else
                    Toast.makeText(MainActivity.this, "Edit Text is not Empty", Toast.LENGTH_LONG).show();
            }
        });
    }
}

the value always returning as empty. 该值始终返回为空。

Beacuse you are getting that edittext value in onCreate ...that value you have to get after onClicking on button. 因为您在onCreate中获得了edittext值,所以在onClicking按钮之后必须获得该值。 Try this.. 尝试这个..

     button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
               // textView.setText("Hello "+name+", Welcome to Android. ");
             String name = editText.getText().toString();
                if(TextUtils.isEmpty(name))
                    Toast.makeText(MainActivity.this, "Edit Text is Empty", Toast.LENGTH_LONG).show();
                else
                    Toast.makeText(MainActivity.this, "Edit Text is not Empty", Toast.LENGTH_LONG).show();
            }
        });

In layout you haven't put any text. 在布局中,您没有放置任何文本。 So it always return empty. 因此它总是返回空。 If you have any hard-coded text put in layout then it will return text. 如果您在布局中放置了任何硬编码的文本,则它将返回文本。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM