2012-06-12 4 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

Вы пытаетесь получить ссылку на TextView в вашем XML перед установкой, что XML в качестве представления для вашей деятельности. Поскольку ваша активность не имеет никакого представления прямо сейчас, любой вызов findViewById() приведет к исключению NullPointerException. Чтобы исправить это, просто позвоните setContentView() перед ссылкой на любой из виджетов, используемых в XML. Он обычно вызывается непосредственно после вызова super().

+0

, что вы говорите, именно то, что я сделал, прежде чем публиковать вопрос, однако он не работает. – Amblll

+0

В этом случае укажите всю трассировку стека LogCat для исключения NullPointerException вместе с соответствующим кодом. –

+0

Теперь он работает. Я удаляю часть кода/комментариев в спешке, потому что вы, кажется, нетерпеливо ждали, поэтому я понятия не имею, что я изменил. Спасибо, в любом случае. – Amblll

Смежные вопросы