Android应用在setText()

时间:2016-11-16 20:39:34

标签: android

我正在创建一个Android应用,但我在setText()

上崩溃了

这是我的java:

EditText eText;
TextView chat;
Button btn;

@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_hitch);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    chat = (TextView) findViewById(R.id.chat);
    eText = (EditText) findViewById(R.id.edittext);
    btn = (Button) findViewById(R.id.button);
    btn.setOnClickListener(new View.OnClickListener()
    {
        public void onClick(View v)
        {
            chat.setText(eText.getText().toString());
        }
    });
}

,这是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:id="@+id/content_hitch"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context="com.example.mohamad.hitch.Hitch"
tools:showIn="@layout/activity_hitch">

<EditText
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:inputType="textPersonName"
    android:text=""
    android:ems="10"
    android:id="@+id/editText"
    android:layout_marginBottom="21dp"
    android:layout_alignParentBottom="true"
    android:layout_alignEnd="@+id/edittext" />

<TextView
    android:text="Hello"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_alignParentStart="true"
    android:id="@+id/chat" />

<Button
    android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/input"
    android:elevation="0dp"
    android:layout_marginEnd="13dp"
    android:layout_alignBottom="@+id/editText"
    android:layout_alignParentEnd="true" />

</RelativeLayout>

这是错误:

E/AndroidRuntime: FATAL EXCEPTION: main
              Process: com.example.mohamad.hitch, PID: 2415
              java.lang.NullPointerException: Attempt to invoke virtualm ethod 'android.text.Editable android.widget.EditText.getText()' on a null    object reference at com.example.mohamad.hitch.Hitch$1.onClick(Hitch.java:41)
                  at android.view.View.performClick(View.java:5610)
                  at android.view.View$PerformClick.run(View.java:22260)
                  at android.os.Handler.handleCallback(Handler.java:751)
                  at android.os.Handler.dispatchMessage(Handler.java:95)
                  at android.os.Looper.loop(Looper.java:154)
                  at android.app.ActivityThread.main(ActivityThread.java:6077)
                  at java.lang.reflect.Method.invoke(Native Method)
                  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)

我看到很多其他人都遇到了同样的问题但是当我尝试每种解决方案时,他们都没有工作。

你能帮我吗?

5 个答案:

答案 0 :(得分:0)

确保在XML中的EditText上正确设置了ID。如果您向我们展示您的完整XML文件并且您收到的错误将更容易找到问题:)

答案 1 :(得分:0)

是否说明错误信息是什么? 最有可能的是,chat为空或eText为空。 在chat.setText(eText.getText().toString());处设置一个断点,看看每个值是什么。

答案 2 :(得分:0)

您的EditText ID是editText,而不是edittext。 区分大小写 !

更改为:

eText = (EditText) findViewById(R.id.editText);

答案 3 :(得分:0)

编辑文本的ID为:editText而不是edittext将eText变量更改为:

android:id="@+id/editText"

答案 4 :(得分:0)

但是这个“”+之前的

chat.setText(""+eText.getText().toString());

,XML文件中EditText的ID是editText 在你的java代码中是edittext。只是确定它会起作用。