Reputation: 171
I'm trying to start an Activity, which includes Bundles. I'm trying to set this bundles to be null for now since nothing has yet been passed on to this activity.
public class DailyActivities extends Activity implements OnClickListener{
TextView scoreA
int gotA;
int counter_score;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
counter_score=0;
int questions_1 = 26;
initialize();
///////PSEUDO CODE...this is where Im trying to say, if no bundled is passed,
////////then setText for scoreA to the int counter score,
////////so that the activity doesn't crash due to null pointer exception////
Bundle gotA = getIntent().getExtras();
if(gotA == null){
scoreA.setText(counter_score);
}else if (gotA != null){
gotLetterA = gotA.getInt("key");
counter_score = gotLetterA;
int percentage = (int)( gotLetterA * 100.0 / questions_1 + 0.5);
scoreA.setText(percentage);
}
}
Currently activity crashes with the a android.resources not found error
edit- added error log
08-24 10:39:33.180: E/AndroidRuntime(21177): FATAL EXCEPTION: main 08-24 10:39:33.180: E/AndroidRuntime(21177): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.test.app/com.test.app.DailyActivities}: android.content.res.Resources$NotFoundException: String resource ID #0x0 08-24 10:39:33.180: E/AndroidRuntime(21177): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059) 08-24 10:39:33.180: E/AndroidRuntime(21177): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084) 08-24 10:39:33.180: E/AndroidRuntime(21177): at android.app.ActivityThread.access$600(ActivityThread.java:130) 08-24 10:39:33.180: E/AndroidRuntime(21177): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195) 08-24 10:39:33.180: E/AndroidRuntime(21177): at android.os.Handler.dispatchMessage(Handler.java:99) 08-24 10:39:33.180: E/AndroidRuntime(21177): at android.os.Looper.loop(Looper.java:137) 08-24 10:39:33.180: E/AndroidRuntime(21177): at android.app.ActivityThread.main(ActivityThread.java:4745) 08-24 10:39:33.180: E/AndroidRuntime(21177): at java.lang.reflect.Method.invokeNative(Native Method) 08-24 10:39:33.180: E/AndroidRuntime(21177): at java.lang.reflect.Method.invoke(Method.java:511) 08-24 10:39:33.180: E/AndroidRuntime(21177): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 08-24 10:39:33.180: E/AndroidRuntime(21177): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 08-24 10:39:33.180: E/AndroidRuntime(21177): at dalvik.system.NativeStart.main(Native Method) 08-24 10:39:33.180: E/AndroidRuntime(21177): Caused by: android.content.res.Resources$NotFoundException: String resource ID #0x0 08-24 10:39:33.180: E/AndroidRuntime(21177): at android.content.res.Resources.getText(Resources.java:229) 08-24 10:39:33.180: E/AndroidRuntime(21177): at android.widget.TextView.setText(TextView.java:3620) 08-24 10:39:33.180: E/AndroidRuntime(21177): at com.MovilTeacher_titan.app.DailyActivities.onCreate(DailyActivities.java:164) 08-24 10:39:33.180: E/AndroidRuntime(21177): at android.app.Activity.performCreate(Activity.java:5008) 08-24 10:39:33.180: E/AndroidRuntime(21177): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079) 08-24 10:39:33.180: E/AndroidRuntime(21177): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
Soooooo here is the solution, I was being dense lol
Bundle gotA = getIntent().getExtras();{
if(gotA == null){ scoreA.setText("0%");
}else {
myPkg = gotA.getInt("key");
counter_score = myPkg;
int percentage = (int)( myPkg * 100.0 / questions_1 + 0.5);
scoreA.setText(""+percentage);
}
}
Upvotes: 0
Views: 1411
Reputation: 10083
percentage is an int. Your call to setText(percentage) is expecting a resource ID, not a percentage value.
Try this: setText(""+percentage).
This will convert percentage to a string and pass that to setText() instead.
p.s. WOUNDEDSteveJones is right too, you need a call to findViewById(), but I'm guessing you have that somewhere or this app would have crashed in a different way.
Upvotes: 1
Reputation: 5315
It looks like you never are assigning scoreA to that text field.
You need to add something like scoreA = (TextView) findViewById(R.id.score);
before you reference it.
Upvotes: 0