2012-07-11 33 views
0

我想寫這個簡單的類,它將採取用戶輸入並將其顯示到 文本視圖,但每次我嘗試運行它時,我在我的主要中得到一個致命錯誤類。我是一個新手,我知道這是簡單的事情,但對於我的生活我找不到它!任何幫助不勝感激。請參閱我下面的代碼來創建類簡單的android類用戶輸入空指針異常

package com.ObComDis.wayne; 

import android.app.Activity; 
import android.os.Bundle; 
import java.util.Date; 
import android.app.Activity; 
import android.os.Bundle; 
import android.text.format.DateFormat; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 

public class ObComDisActivity extends Activity { 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
} 

String name; 
EditText et = (EditText) findViewById(R.id.edittext); 
TextView t = (TextView) findViewById(R.id.textView1); 

public String getName() 
{ 
    String name = et.getText().toString(); 
    return name; 
} 
public void main (String args []) 
{ 
    ObComDisActivity myocd = new ObComDisActivity(); 
    t.setText(name); 

} 
} 

這裏是我從日誌貓獲取讀數.....

07-11 18:55:01.149: D/AndroidRuntime(525): Shutting down VM 
07-11 18:55:01.149: W/dalvikvm(525): threadid=1: thread exiting with uncaught exception  (group=0x40015560) 
07-11 18:55:01.189: E/AndroidRuntime(525): FATAL EXCEPTION: main 
07-11 18:55:01.189: E/AndroidRuntime(525): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.ObComDis.wayne/com.ObComDis.wayne.ObComDisActivity}: java.lang.NullPointerException 
07-11 18:55:01.189: E/AndroidRuntime(525): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1569) 
07-11 18:55:01.189: E/AndroidRuntime(525): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663) 
07-11 18:55:01.189: E/AndroidRuntime(525): at android.app.ActivityThread.access$1500(ActivityThread.java:117) 
07-11 18:55:01.189: E/AndroidRuntime(525): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931) 
07-11 18:55:01.189: E/AndroidRuntime(525): at android.os.Handler.dispatchMessage(Handler.java:99) 
07-11 18:55:01.189: E/AndroidRuntime(525): at android.os.Looper.loop(Looper.java:123) 
07-11 18:55:01.189: E/AndroidRuntime(525): at android.app.ActivityThread.main(ActivityThread.java:3683) 
07-11 18:55:01.189: E/AndroidRuntime(525): at java.lang.reflect.Method.invokeNative(Native Method) 
07-11 18:55:01.189: E/AndroidRuntime(525): at java.lang.reflect.Method.invoke(Method.java:507) 
07-11 18:55:01.189: E/AndroidRuntime(525): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
07-11 18:55:01.189: E/AndroidRuntime(525): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
07-11 18:55:01.189: E/AndroidRuntime(525): at dalvik.system.NativeStart.main(Native Method) 
07-11 18:55:01.189: E/AndroidRuntime(525): Caused by: java.lang.NullPointerException 
07-11 18:55:01.189: E/AndroidRuntime(525): at android.app.Activity.findViewById(Activity.java:1647) 
07-11 18:55:01.189: E/AndroidRuntime(525): at com.ObComDis.wayne.ObComDisActivity.<init>(ObComDisActivity.java:25) 
07-11 18:55:01.189: E/AndroidRuntime(525): at java.lang.Class.newInstanceImpl(Native Method) 
07-11 18:55:01.189: E/AndroidRuntime(525): at java.lang.Class.newInstance(Class.java:1409) 
07-11 18:55:01.189: E/AndroidRuntime(525): at android.app.Instrumentation.newActivity(Instrumentation.java:1021) 
07-11 18:55:01.189: E/AndroidRuntime(525): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1561) 
07-11 18:55:01.189: E/AndroidRuntime(525): ... 11 more 
+0

你可以格式化你的日誌貓在看?如果可能的話發佈到pastebin。按原樣閱讀是一種痛苦。 – Mob 2012-07-11 19:04:41

+0

對不起!不知道你的意思是把它貼到貼紙箱上?我怎樣才能格式化它?我只是將我的日誌貓中的內容粘貼到這個問題上?謝謝。/ – meself1000 2012-07-12 17:29:59

回答

1

findViewById(),直到創建視圖返回null,在你的情況下,只會因onCreate()中的setContentView()而發生。

嘗試這樣:

EditText et; 
TextView t; 

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    et = (EditText) findViewById(R.id.edittext); 
    t = (TextView) findViewById(R.id.textView1); 
}