2014-11-10 6 views
-1

У меня проблема с сбоем приложения, когда я добавляю onClickListener, Я не знаю, где моя проблема. мой код:Android-приложение падает, когда onClickListener

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_room_choose); 
    addButtonListener(); //that crashes 

[...]}

public void addButtonListener() { 
    ImageButton ib = (ImageButton) findViewById(R.id.imageButton1); 
    ib.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent intent = new Intent(RoomChoose.this, Salon.class); 
      startActivity(intent); 
     } 
    }); 
} 

И код кнопки Image является:

<ImageButton 
    android:id="@+id/imageButton1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentTop="true" 
    android:background="@null" 
    android:contentDescription="@string/salonDesc" 
    android:src="@drawable/ic_liv" /> 

Любой человек может помочь?

UPDATE:

Crashlog:

11-10 17:16:36.713: E/Trace(5166): error opening trace file: No such file or directory (2) 
11-10 17:16:37.123: E/AndroidRuntime(5166): FATAL EXCEPTION: main 
11-10 17:16:37.123: E/AndroidRuntime(5166): java.lang.RuntimeException: Unable to start activity ComponentInfo{ele.mentari.homecenter/ele.mentari.homecenter.RoomChoose}: java.lang.NullPointerException 
11-10 17:16:37.123: E/AndroidRuntime(5166):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java) 
11-10 17:16:37.123: E/AndroidRuntime(5166):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java) 
11-10 17:16:37.123: E/AndroidRuntime(5166):  at android.app.ActivityThread.access$600(ActivityThread.java) 
11-10 17:16:37.123: E/AndroidRuntime(5166):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java) 
11-10 17:16:37.123: E/AndroidRuntime(5166):  at android.os.Handler.dispatchMessage(Handler.java) 
11-10 17:16:37.123: E/AndroidRuntime(5166):  at android.os.Looper.loop(Looper.java) 
11-10 17:16:37.123: E/AndroidRuntime(5166):  at android.app.ActivityThread.main(ActivityThread.java) 
11-10 17:16:37.123: E/AndroidRuntime(5166):  at java.lang.reflect.Method.invokeNative(Native Method) 
11-10 17:16:37.123: E/AndroidRuntime(5166):  at java.lang.reflect.Method.invoke(Method.java) 
11-10 17:16:37.123: E/AndroidRuntime(5166):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java) 
11-10 17:16:37.123: E/AndroidRuntime(5166):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java) 
11-10 17:16:37.123: E/AndroidRuntime(5166):  at dalvik.system.NativeStart.main(Native Method) 
11-10 17:16:37.123: E/AndroidRuntime(5166): Caused by: java.lang.NullPointerException 
11-10 17:16:37.123: E/AndroidRuntime(5166):  at ele.mentari.homecenter.RoomChoose.addButtonListener(RoomChoose.java:48) 
11-10 17:16:37.123: E/AndroidRuntime(5166):  at ele.mentari.homecenter.RoomChoose.onCreate(RoomChoose.java:36) 
11-10 17:16:37.123: E/AndroidRuntime(5166):  at android.app.Activity.performCreate(Activity.java) 
11-10 17:16:37.123: E/AndroidRuntime(5166):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java) 
11-10 17:16:37.123: E/AndroidRuntime(5166):  at com.lbe.security.service.core.client.b.x.callActivityOnCreate(Unknown Source) 
11-10 17:16:37.123: E/AndroidRuntime(5166):  ... 12 more 
+1

stacktrace of exception? – Blackbelt

+0

Кроме того, является ли xml 'ImageButton' вы размещены внутри' activity_room_choose.xml'? – codeMagic

+0

Нет, его опубликовано в файле fragment_room_choose.xml stacktrace в обновленном сообщении. ;] – SURViR

ответ

1

Вы получаете NullPointerException на ImageButton ib, как он относится к фрагментировать XML - fragment_room_choose.xml. И вы звоните findViewById со ссылкой activity_room_choose.xml.

Вам нужно будет сделать, как это в осколке onCreateView:

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 
    View view = inflater.inflate(R.layout.fragment_room_choose, container, false); 
    ImageButton ib = (ImageButton) view.findViewById(R.id.imageButton1); 
    ib.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      //your code 
     } 
    }); 
    return view; 
} 

Надеется, что это помогает.

+0

Спасибо, когда я делаю это приложение кода, никаких сбоев, но я не знаю, как начать прослушивание, я должен добавить onCreateView ([ARGS ??!]) ;? – SURViR

+0

Refer this [tutorial.] (http://www.techotopia.com/index.php/Using_Fragments_in_Android_-_A_Worked_Example). :) @SURViR –

+0

Я не понимаю этого. Я делаю все, и это не сработает; – SURViR

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