2017-01-11 56 views
-7

爲什麼我在表示userInput = (EditText) findViewById(R.id.editText);的行上出現錯誤?我覺得自己喜歡這項工作,兩個文件中的ID都相符。爲什麼我在這一行上發生錯誤?

這裏的MainActivity.java文件

package org.example.someone.tamsky; 

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.widget.*; 

public class MainActivity extends AppCompatActivity { 
    private EditText userInput; 

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

    userInput = (EditText) findViewById(R.id.editText); 
} 

這裏的activity_main.xml文件

<?xml version="1.0" encoding="utf-8"?> 
<android.support.constraint.ConstraintLayout 
    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/activity_main" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="org.example.garen.tamsky.MainActivity"> 

    <TextView 
     android:text="Welcome to WOMP!" 
     android:layout_width="125dp" 
     android:layout_height="17dp" 
     tools:layout_editor_absoluteY="8dp" 
     android:id="@+id/textView" 
     android:layout_marginStart="16dp" 
     app:layout_constraintLeft_toLeftOf="parent" 
     android:layout_marginLeft="16dp" 
     android:layout_marginEnd="16dp" 
     app:layout_constraintRight_toRightOf="parent" 
     android:layout_marginRight="16dp"/> 

    <EditText 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:inputType="textPersonName" 
     android:text="Name" 
     android:ems="10" 
     android:id="@+id/editText" 
     app:layout_constraintRight_toRightOf="parent" 
     app:layout_constraintTop_toBottomOf="@+id/textView" 
     app:layout_constraintLeft_toLeftOf="parent"/> 

    <EditText 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:inputType="textPersonName" 
     android:text="Password" 
     android:ems="10" 
     android:id="@+id/editText2" 
     app:layout_constraintRight_toRightOf="parent" 
     android:layout_marginTop="8dp" 
     app:layout_constraintTop_toBottomOf="@+id/editText" 
     app:layout_constraintLeft_toLeftOf="parent"/> 
</android.support.constraint.ConstraintLayout> 
+4

有什麼錯誤? –

+0

'爲什麼我在這一行上發生錯誤?' - 在哪一行發生哪個錯誤? –

+0

@chomopy考慮接受答案,如果有任何幫助! – W4R10CK

回答

2

你需要在01初始化onCreate方法內部的意見

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

    userInput = (EditText) findViewById(R.id.editText); 
} 
0

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

0

Views具有Activity創作是onCreate的時間進行初始化,您必須初始化上onCreate您的觀點:

package org.example.someone.tamsky; 

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.widget.*; 

public class MainActivity extends AppCompatActivity { 
    private EditText userInput; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     // here init your views 
     userInput = (EditText) findViewById(R.id.editText); 
    } 
} 
0

在你用來初始化控件的ID在oncreate方法的任何活動。
當你調用setContentView(R.layout.activity_main);那麼你的活動得到了附加的觀點寫這篇文章您的onCreate方法 userInput = (EditText) findViewById(R.id.editText);

0

userInput = (EditText) findViewById(R.id.editText);在之前撥打電話onCreate,這就是爲什麼你會收到錯誤。

簡而言之userInput = (EditText) findViewById(R.id.editText);setContentView(R.layout.activity_main);onCreate

相關問題