2011-10-08 1 views
0

J'ai lu beaucoup de choses à ce sujet, mais je n'ai pas trouvé une solution. ceci est mon premier projet android. J'essaie d'ouvrir une activité de mon activité principale. J'ai doublé vérifier les noms et les fichiers de configuration, mais la procédure startactivity() échoue. Debbuger montre l'erreur d'exécution. comme vous le ferez, l'activité startactivity est appelée lors d'un événement onclick.obtenir l'exception au démarrage d'une nouvelle activité sur un android

Je suis vraiment coincé ici ne sais pas quoi faire d'autre.

merci beaucoup!

* Ceci est l'activité principale **

package com.example.helloandroid; 
import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 

public class HelloworldActivity extends Activity { 
    /** Called when the activity is first created. */ 
    private OnClickListener gtScoringListener = new OnClickListener() { 
     public void onClick(View v) { 
      Intent mintent = new Intent(HelloworldActivity.this ,imgScoring.class); 
      startActivity(mintent); 
     } 
    }; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     Button button = (Button)findViewById(R.id.button1); 
     button.setOnClickListener(gtScoringListener); 
     } 
} 

* Ceci est l'activité cible: *

package com.example.helloandroid; 

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.TextView; 

public class imgScoring extends Activity { 
    private OnClickListener backBtnListener = new OnClickListener() { 
     public void onClick(View v) { 
      Intent intent = new Intent(imgScoring.this, HelloworldActivity.class); 
      startActivity(intent); 
      } 
    }; 
    private OnClickListener scoreBtnListener = new OnClickListener() { 
     public void onClick(View v){ 
      TextView tv = (TextView)findViewById(R.id.editText1); 
      tv.setText(((Button)v).getText()); 
      } 
    }; 
    /** Called when the activity is first created. */ 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 


     Button button = (Button)findViewById(R.id.button1); 
     button.setOnClickListener(scoreBtnListener); 
     button = (Button)findViewById(R.id.Button01); 
     button.setOnClickListener(scoreBtnListener); 
     button = (Button)findViewById(R.id.Button03); 
     button.setOnClickListener(scoreBtnListener); 
     button = (Button)findViewById(R.id.Button02); 
     button.setOnClickListener(scoreBtnListener); 
     button = (Button)findViewById(R.id.Button04); 
     button.setOnClickListener(scoreBtnListener); 
     button = (Button)findViewById(R.id.button3); 
     button.setOnClickListener(backBtnListener); 

     setContentView(R.layout.imgscoring); 
     } 
} 

c'est le AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
     package="com.example.helloandroid" 
     android:versionCode="1" 
     android:versionName="1.0"> 
    <uses-sdk android:minSdkVersion="12" /> 

    <application android:icon="@drawable/icon" android:label="@string/app_name"> 
     <activity android:name=".imgScoring"></activity> 
     <activity android:name=".HelloworldActivity" 
        android:label="@string/app_name"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 

    </application> 
</manifest> 

Répondre

3

Tu aurais posté le stacktrace, mais je suppose que l'erreur est sur cette ligne dans votre activité cible:

button.setOnClickListener(scoreBtnListener); 

Cela vous donnera un NULL:

Button button = (Button)findViewById(R.id.button1); 

parce que vous avez pas définir une vue de contenu dans cette activité, il n'y a donc rien à findViewById() à retourner. Vous obtiendrez un pointeur null lorsque vous appelez cela setOnclickLIstener()

+0

@Uvs: pour ajouter à ceci - place 'setContentView()' appel juste après le 'super.onCreate (savedInstanceState)'. –

0

Essayez le changement de nom de classe de imgScoring à ImgScoring partout. Java ne permet pas à la classe de commencer à partir d'une petite lettre ;-)

Et de placer setContentView(R.layout.imgscoring); juste après votre super.onCreate();

Questions connexes