2012-06-12 54 views
1

我指的是Using MySurfaceView with main.xml (android),代碼爲「textView1.setText(」set「);」在onCreate方法裏面會出現錯誤(tv1 =(TextView)findViewById(R.id.tv1); - declare工作正常)。我該如何解決這個問題?預先感謝您的幫助。使用SurfaceView與xml

public class For12junonly2Activity extends Activity { 


TextView tv1; 
EditText et1; 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    try 
    { 
    tv1 = (TextView)findViewById(R.id.tv1);  
    tv1.setText("Hi"); 
    }catch(Exception e) 
    { 
     Log.d("prob",String.valueOf(e)); 
    } 
    et1 = (EditText)findViewById(R.id.et1); 
    setContentView(R.layout.main); 

    float sss = surf.getX(); 
    Log.d("float create",String.valueOf(sss)); 
} 

} 

class surf extends SurfaceView implements SurfaceHolder.Callback 
{ 
...... from https://stackoverflow.com/q/8149225/1393006 




public boolean onTouchEvent(MotionEvent event) 
{ 
    canvas.drawBitmap(myBitmap, event.getX() - (myBitmap.getWidth()/2), event.getY() - (myBitmap.getHeight()/2), null); 
    canvas.drawCircle(event.getX(), event.getY(), 10, paint); 
    surfaceHolder.unlockCanvasAndPost(canvas); 
    Log.d("onTouch","X: "+event.getX()+" , Y: "+event.getY()); 
    x = event.getX(); 
    return true; 
} 
} 

從XML代碼從日誌貓

<TextView 
    android:id="@+id/tv1" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="tv1" /> 

<te.de11.surf 
    android:id="@+id/surfaceview" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    /> 

錯誤信息

D/dalvikvm(443): Debugger has detached; object registry had 1 entries 
I/AndroidRuntime(443): NOTE: attach of thread 'Binder Thread #3' failed 
D/prob(363): java.lang.NullPointerException 
D/float create(363): 0.0 
I/ActivityManager(60): Displayed te.de11/.For12junonly2Activity: +1s29ms 
D/dalvikvm(127): GC_EXPLICIT freed 66K, 52% free 2855K/5895K, external 4998K/6087K, paused 44ms 
+0

什麼是錯誤? –

+0

W/dalvikvm(403):threadid = 1:線程退出時未捕獲異常(group = 0x40015560),這種錯誤消息有幫助嗎? – Amblll

+0

不是真的,你可以附上一個try-catch塊的代碼,並在catch塊中打印堆棧跟蹤併發布? –

回答

0

您正在嘗試設置,XML作爲視圖之前去你的XML TextView的參考你的活動。由於您的活動目前沒有任何視圖,因此任何findViewById()調用都將導致NullPointerException。要修復它,只需在引用XML中使用的任何小部件之前調用setContentView()即可。它通常在撥打super()後直接調用。

+0

你所說的正是我在發佈問題之前所做的,但它不起作用。 – Amblll

+0

在這種情況下,請提供NullPointerException的整個LogCat堆棧跟蹤以及相關的代碼。 –

+0

現在正在工作。我匆忙地刪除部分代碼/評論,因爲你似乎不耐煩地等待,所以我不知道我改變了什麼。不管怎麼說,還是要謝謝你。 – Amblll