2014-02-21 3 views
0

, когда я пытаюсь ЛУЧ моего заявления, это сообщение об ошибке появляется, пожалуйста, помогите:java.lang.RuntimeException: Невозможно начать деятельность

этого сообщение об ошибке:

02-21 10:46:40.551 1092-1092/com.example.myapplication3.app E/AndroidRuntime﹕ FATAL EXCEPTION: main 
Process: com.example.myapplication3.app, PID: 1092 
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.myapplication3.app/com.example.myapplication3.app.MainActivity2}: java.lang.NullPointerException 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2176) 
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2226) 
     at android.app.ActivityThread.access$700(ActivityThread.java:135) 
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1397) 
     at android.os.Handler.dispatchMessage(Handler.java:102) 
     at android.os.Looper.loop(Looper.java:137) 
     at android.app.ActivityThread.main(ActivityThread.java:4998) 
     at java.lang.reflect.Method.invokeNative(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:515) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593) 
     at dalvik.system.NativeStart.main(Native Method) 
Caused by: java.lang.NullPointerException 
     at com.example.myapplication3.app.MainActivity2.onCreate(MainActivity2.java:27) 
     at android.app.Activity.performCreate(Activity.java:5243) 
     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2140) 
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2226) 
     at android.app.ActivityThread.access$700(ActivityThread.java:135) 
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1397) 
     at android.os.Handler.dispatchMessage(Handler.java:102) 
     at android.os.Looper.loop(Looper.java:137) 
     at android.app.ActivityThread.main(ActivityThread.java:4998) 
     at java.lang.reflect.Method.invokeNative(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:515) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593) 
     at dalvik.system.NativeStart.main(Native Method) 

линия Явы код, который связан с этим была ошибка: ((Button) findViewById (R.id.monBouton)) setOnClickListener (....)

это мой код Java:.

package com.example.myapplication3.app; 



public class MainActivity2 extends ActionBarActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    if (savedInstanceState == null) { 
     getSupportFragmentManager().beginTransaction() 
       .add(R.id.container, new PlaceholderFragment()) 
       .commit(); 
    } 
    ((Button)findViewById(R.id.monBouton)).setOnClickListener(
      new OnClickListener() { 
     @Override 
     public void onClick(View v) { 

         EditText texte = ((EditText)findViewById(R.id.monEditText)); 

       String nom = texte.getText().toString(); 

       Toast.makeText(MainActivity2.this, nom, Toast.LENGTH_SHORT).show(); 
     } 
    }); 
    } 


@Override 
public boolean onCreateOptionsMenu(Menu menu) { 


    getMenuInflater().inflate(R.menu.main_activity2, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 

    int id = item.getItemId(); 
    if (id == R.id.action_settings) { 
     return true; 
    } 
    return super.onOptionsItemSelected(item); 
} 

/** 
* A placeholder fragment containing a simple view. 
*/ 
public static class PlaceholderFragment extends Fragment { 

    public PlaceholderFragment() { 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 
     View rootView = inflater.inflate(R.layout.fragment_main2, container, false); 
     return rootView; 
    } 
} 

} 

код XML

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent"> 

<EditText 
    android:id="@+id/monEditText" 
    android:layout_height="wrap_content" 
    android:hint="Taper votre nom" 
    android:layout_width="fill_parent"> 

</EditText> 
<!-- 
Le Bouton qui permettra à l’utilisateur 
de valider sa saisie 
--> 
<Button 
    android:id="@+id/monBouton" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Valider" 
    android:layout_gravity="center_horizontal"> 
</Button> 
</LinearLayout> 
+0

Данный XML-код имеет формат layout_main2.xml или activity_main.xml? – silwar

ответ

0

Использование:

Button mButton = (Button)findViewById(R.id.monBouton); 

Тогда:

mButton.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
         //Code here 
        } 
}); 
+0

Это хорошее предложение относительно читаемости кода, но не несет ответственности за его исключение NullPointerException. –

+0

+1 Thumbs up, вы нашли корень проблемы :) – Skynet

+0

его не работает :( – abdoBim

1

Вы получаете NullpointerException потому что файл макета не содержит View (скорее всего, FrameLayout) с идентификатором R.id.container.

Так что этот кусок кода будет врезаться:

getSupportFragmentManager().beginTransaction() 
       .add(R.id.container, new PlaceholderFragment()) 
       .commit(); 

Поскольку «R.id.container» не существует в файле макета. Поместите FrameLayout с идентификатором «контейнер» в ваш файл макета. Например, например:

<FrameLayout 
     android:id="@+id/container" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" > 
</FrameLayout> 
+0

привет Филипп Джахада, вы имеете в виду вот так: abdoBim

+0

Внутри вашего файла макета вам нужен фреймэйт, который будет содержать фрагмент. –

+0

FrameLayout уже существует, я только что упомянул, что проблема возникает, когда я хочу получить событие Компонент !! – abdoBim

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