I am refering to Using MySurfaceView with main.xml (android), with the code “textView1.setText(“set”);” inside the onCreate method there will be an error ( tv1 = (TextView)findViewById(R.id.tv1); – declare is working fine). How can I resolve this? Thanks in advance for any help.
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;
}
}
code from 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"
/>
error message from log cat
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
You are trying to get a reference to the TextView in your XML before setting that XML as the view for your activity. As your Activity doesn’t have any view right now, any findViewById() call will result in a NullPointerException. To fix it, simply call
setContentView()before referencing any of the widgets used in the XML. It is usually called directly after thesuper()call.