2011-10-08 54 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);;

相关问题