2014-01-05 2 views
2

Я изучаю Java через видеоурок, но у меня возникла странная проблема. Я создаю класс с именем OpenedClass в java и реализую два класса.
Один для OnClickListener, а второй - OnCheckChangeListener, но когда я запускаю приложение на эмуляторе, он всегда дает мне ошибку для звонка OnClickListener.
Код для моего Java класса:java.lang.runtime Исключение: не удалось запустить компонент

package com.thenewboston.thenewboston; 
import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.RadioGroup; 
import android.widget.RadioGroup.OnCheckedChangeListener; 
import android.widget.TextView; 

public class OpenedClass extends Activity implements View.OnClickListener, 
    OnCheckedChangeListener { 

TextView question, test; 
Button returnData; 
RadioGroup selectionList; 
String gotBread; 
String setData; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.send); 
    initialize(); 

private void initialize() { 
    // TODO Auto-generated method stub 
    question = (TextView) findViewById(R.id.tvQuestion); 
    test = (TextView) findViewById(R.id.tvTest); 
    returnData = (Button) findViewById(R.id.bResults); 
    selectionList = (RadioGroup) findViewById(R.id.rgAnswers); 
    selectionList.setOnCheckedChangeListener(this); 
    returnData.setOnClickListener(this); 
} 

@Override 
public void onClick(View v) { 
    // TODO Auto-generated method stub 
    Intent person = new Intent(); 
    Bundle backpack = new Bundle(); 
    backpack.putString("answer", setData); 
    person.putExtras(backpack); 
    setResult(RESULT_OK,person); 
    finish(); 
} 

@Override 
public void onCheckedChanged(RadioGroup group, int checkedId) { 
    // TODO Auto-generated method stub 
    switch (checkedId) { 
    case R.id.rCrazy: 
     setData = "Probably Right !"; 
     break; 
    case R.id.rSexy: 
     setData = "Definitely Right !"; 
     break; 
    case R.id.rBoth: 
     setData = "Spot On !"; 
     break; 
    } 
    test.setText(setData); 
} 

} 




и это выход для LogCat:

01-05 15:59:54.605: E/AndroidRuntime(313): FATAL EXCEPTION: main 
01-05 15:59:54.605: E/AndroidRuntime(313): java.lang.RuntimeException: Unable to start  activity ComponentInfo{com.thenewboston.thenewboston/com.thenewboston.thenewboston.OpenedClass}: java.lang.NullPointerException 
01-05 15:59:54.605: E/AndroidRuntime(313): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647) 
01-05 15:59:54.605: E/AndroidRuntime(313): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663) 
01-05 15:59:54.605: E/AndroidRuntime(313): at android.app.ActivityThread.access$1500(ActivityThread.java:117) 
01-05 15:59:54.605: E/AndroidRuntime(313): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931) 
01-05 15:59:54.605: E/AndroidRuntime(313): at android.os.Handler.dispatchMessage(Handler.java:99) 
01-05 15:59:54.605: E/AndroidRuntime(313): at android.os.Looper.loop(Looper.java:123) 
01-05 15:59:54.605: E/AndroidRuntime(313): at android.app.ActivityThread.main(ActivityThread.java:3683) 
01-05 15:59:54.605: E/AndroidRuntime(313): at java.lang.reflect.Method.invokeNative(Native Method) 
01-05 15:59:54.605: E/AndroidRuntime(313): at java.lang.reflect.Method.invoke(Method.java:507) 
01-05 15:59:54.605: E/AndroidRuntime(313): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
01-05 15:59:54.605: E/AndroidRuntime(313): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
01-05 15:59:54.605: E/AndroidRuntime(313): at dalvik.system.NativeStart.main(Native Method) 
01-05 15:59:54.605: E/AndroidRuntime(313): Caused by: java.lang.NullPointerException 
01-05 15:59:54.605: E/AndroidRuntime(313): at com.thenewboston.thenewboston.OpenedClass.initialize(OpenedClass.java:44) 
01-05 15:59:54.605: E/AndroidRuntime(313): at com.thenewboston.thenewboston.OpenedClass.onCreate(OpenedClass.java:25) 
01-05 15:59:54.605: E/AndroidRuntime(313): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
01-05 15:59:54.605: E/AndroidRuntime(313): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611) 
01-05 15:59:54.605: E/AndroidRuntime(313): ... 11 more 


, как вы, ребята, можете увидеть, что он говорит мне, что ошибка в строке 44 и строке 44 в моем коде

 returnData.setOnClickListener(this); 

Я не понимал этого вообще, когда комментирую эту строку, он покажет мне макет, когда я этого не сделаю. Любая идея, почему это происходит?

+3

'returnData' является недействительным. проверьте идентификатор в своем макете xml – Raghunandan

+0

спасибо Raghunandan ваш комментарий помощь alot –

ответ

1

Из ваших комментариев ниже marcin_j отправлять

<Button android:id="@+id/bReturn" // id is bReturn 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:text="Return" > 
</Button> 

Измените это

returnData = (Button) findViewById(R.id.bResults); 

в

returnData = (Button) findViewById(R.id.bReturn); 
+0

спасибо, я просто сделал это, пока вы отправляете –

+0

@jazzb я не мог опубликовать его, прежде чем я не узнаю, что у вас было в xml. Но id ошибочен, следовательно, NPE – Raghunandan

+0

сэр, я получил его из вашего выше комментария на мой пост, и я действительно благодарен от глубины своего сердца. Мне плохо, что я не опубликовал xml-файл и еще раз благодарю сэра. –

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