2016-02-17 39 views
-1

,當我在發生的事情只是一點點迷茫......NullPointerException異常改變testView ID

當的EditText ID =用戶名,似乎應用程序是運行良好。

但是,當我改變圖片中的id時,應用程序停止併產生下面的錯誤。

我的XML:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="@drawable/blurred"> 
<include 
    android:id="@+id/toolbarSignup" 
    layout="@layout/toolbar_layout" /> 
<ImageView 
    android:layout_width="100dp" 
    android:layout_height="100dp" 
    android:id="@+id/userPic" 
    android:src="@drawable/ic_upload" 
    android:layout_below="@+id/toolbarSignup" 
    android:layout_centerHorizontal="true" /> 
<Button 
    style="?android:attr/buttonStyleSmall" 
    android:layout_width="130dp" 
    android:layout_height="40dp" 
    android:text="Upload Image" 
    android:id="@+id/upload" 
    android:layout_below="@+id/userPic" 
    android:layout_centerHorizontal="true" 
    android:background="#03A9F4" 
    android:alpha="0.50"/> 
<EditText 
    android:layout_width="230dp" 
    android:layout_height="wrap_content" 
    android:inputType="textPersonName" 
    android:id="@+id/firstname" 
    android:layout_below="@+id/upload" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="20dp" 
    android:hint="First Name" /> 

我的logcat:

02-17 07:05:42.756 17367-17367/? E/AndroidRuntime: FATAL EXCEPTION: main 
Process: glorioso.david.metrohomes, PID: 17367 
java.lang.RuntimeException: Unable to start activity ComponentInfo{glorioso.david.metrohomes/glorioso.david.metrohomes.MainActivity}: java.lang.NullPointerException 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245) 
at android.app.ActivityThread.access$800(ActivityThread.java:135) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:136) 
at android.app.ActivityThread.main(ActivityThread.java:5021) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:515) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:827) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:643) 
at dalvik.system.NativeStart.main(Native Method) 
Caused by: java.lang.NullPointerException 
at android.support.v7.widget.ToolbarWidgetWrapper.<init>(ToolbarWidgetWrapper.java:98) 
at android.support.v7.widget.ToolbarWidgetWrapper.<init>(ToolbarWidgetWrapper.java:91) 
at android.support.v7.app.ToolbarActionBar.<init>(ToolbarActionBar.java:73) 
at android.support.v7.app.AppCompatDelegateImplV7.setSupportActionBar(AppCompatDelegateImplV7.java:205) 
at android.support.v7.app.AppCompatActivity.setSupportActionBar(AppCompatActivity.java:99) 
at glorioso.david.metrohomes.MainActivity.onCreate(MainActivity.java:27) 
at android.app.Activity.performCreate(Activity.java:5231) 
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1090) 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245) 
at android.app.ActivityThread.access$800(ActivityThread.java:135) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:136) 
at android.app.ActivityThread.main(ActivityThread.java:5021) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:515) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:827) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:643) 
at dalvik.system.NativeStart.main(Native Method) 

我的活動:

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

public class Signup extends AppCompatActivity { 

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

     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbarSignup); 
     setSupportActionBar(toolbar); 
     getSupportActionBar().setTitle("Registration"); 
    } 
} 

回答

0

如果你想使用id/firstname,那麼在你的活動onCreate method應該定義Edit Text name=(EditText)findViewById(R.id.firstname)

注意到您的xml中的id應該始終與您的活動相同。

0

您可能會忘記更改您的onCreate方法中的ID。 更改findViewById(R.id.username);findViewById(R.id.firstname);

希望這可以解決您的問題。