2011-10-08 52 views
0

我已閱讀了很多關於此的內容,但沒有提出解決方案。 這是我的第一個android項目。在Android上開始新活動時發生異常

我想喲打開我的主要活動的活動。 我已經加倍檢查名稱和配置文件,但startactivity()過程失敗。 debbuger顯示運行時錯誤。因爲你會c,在onclick事件中調用startactivity。

我真的被困在這裏不知道還有什麼要做。

非常感謝!

*這是主要的活動**

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); 
     } 
} 

*這是目標活動:*

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); 
     } 
} 

這是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> 

回答

3

你應該已經張貼堆棧跟蹤,但我認爲錯誤是在這條線在你的目標的活動:

button.setOnClickListener(scoreBtnListener); 

這會給你一個NULL

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

,因爲你還沒有在THAT活動中設置contentview,因此findViewById()沒有任何回報。撥打電話時您會得到一個空指針setOnclickLIstener()

+0

@Uvs:添加到此處 - 將'setContentView()'調用放在'super.onCreate(savedInstanceState)'之後。 –

0

嘗試將imgScoring更改爲ImgScoring。 Java不允許類名從小寫字母開始;-)

並且在您的super.onCreate()之後放置setContentView(R.layout.imgscoring);;

相關問題