使用 SharedPreferences,此活动在启动时崩溃。首先我会发布活动代码,然后我会发布我的 LogCat。非常感谢你们,你们总是这么大的帮助!:-)
活动代码;
package com.creativecoders.gymbuddy;
import com.creativecoders.gymbuddy.R;
import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.EditText;
import android.widget.TextView;
public class Benchmark extends Activity {
public static final String GB_PREFERENCES_BENCH = "Bench";
public static final String GB_PREFERENCES_FLIES = "Flies";
SharedPreferences settings = getSharedPreferences("gBValues",
Context.MODE_PRIVATE);
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_benchmark);
}
public void onStart() {
super.onStart();
findViewById(R.id.button5).setOnClickListener(new handleButton5());
}
class handleButton5 implements OnClickListener {
public void onClick(View v) {
EditText editText1 = (EditText)findViewById(R.id.editText1);
String sWeight = editText1.getText().toString();
final double dWeight = Double.parseDouble(sWeight);
EditText editText2 = (EditText)findViewById(R.id.editText2);
String sPush = editText2.getText().toString();
final double dPush = Double.parseDouble(sPush);
EditText editText3 = (EditText)findViewById(R.id.editText3);
String sSit = editText3.getText().toString();
final double dSit = Double.parseDouble(sSit);
EditText editText4 = (EditText)findViewById(R.id.editText4);
String sPull = editText4.getText().toString();
final double dPull = Double.parseDouble(sPull);
double dBench = (((Math.floor(dWeight*.0664))*10)-10)+dPush;
double dFlies = (Math.floor(((Math.floor(dBench*.6)/10)*10)));
int iBench = (int)dBench;
int iFlies = (int)dFlies;
String sBench = "" + iBench;
String sFlies = "" + iFlies;
SharedPreferences.Editor editor1 = settings.edit();
editor1.putString(GB_PREFERENCES_BENCH, sBench);
editor1.commit();
SharedPreferences.Editor editor2 = settings.edit();
editor2.putString(GB_PREFERENCES_FLIES, sFlies);
editor2.commit();
TextView TextView1 = (TextView)findViewById(R.id.textView1);
TextView1.setText(String.valueOf("Bench Press "+ iBench +" lbs"));
TextView TextView2 = (TextView)findViewById(R.id.textView2);
TextView2.setText(String.valueOf("Bar Curls "+ iCurls +" lbs"));
}
}
}
这是我的 LogCat;
09-28 21:18:52.636: E/AndroidRuntime(686): FATAL EXCEPTION: main
09-28 21:18:52.636: E/AndroidRuntime(686): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.creativecoders.gymbuddy/com.creativecoders.gymbuddy.Benchmark}: java.lang.NullPointerException
09-28 21:18:52.636: E/AndroidRuntime(686): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1879)
09-28 21:18:52.636: E/AndroidRuntime(686): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1980)
09-28 21:18:52.636: E/AndroidRuntime(686): at android.app.ActivityThread.access$600(ActivityThread.java:122)
09-28 21:18:52.636: E/AndroidRuntime(686): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1146)
09-28 21:18:52.636: E/AndroidRuntime(686): at android.os.Handler.dispatchMessage(Handler.java:99)
09-28 21:18:52.636: E/AndroidRuntime(686): at android.os.Looper.loop(Looper.java:137)
09-28 21:18:52.636: E/AndroidRuntime(686): at android.app.ActivityThread.main(ActivityThread.java:4340)
09-28 21:18:52.636: E/AndroidRuntime(686): at java.lang.reflect.Method.invokeNative(Native Method)
09-28 21:18:52.636: E/AndroidRuntime(686): at java.lang.reflect.Method.invoke(Method.java:511)
09-28 21:18:52.636: E/AndroidRuntime(686): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
09-28 21:18:52.636: E/AndroidRuntime(686): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
09-28 21:18:52.636: E/AndroidRuntime(686): at dalvik.system.NativeStart.main(Native Method)
09-28 21:18:52.636: E/AndroidRuntime(686): Caused by: java.lang.NullPointerException
09-28 21:18:52.636: E/AndroidRuntime(686): at android.content.ContextWrapper.getSharedPreferences(ContextWrapper.java:153)
09-28 21:18:52.636: E/AndroidRuntime(686): at com.creativecoders.gymbuddy.Benchmark.<init>(Benchmark.java:35)
09-28 21:18:52.636: E/AndroidRuntime(686): at java.lang.Class.newInstanceImpl(Native Method)
09-28 21:18:52.636: E/AndroidRuntime(686): at java.lang.Class.newInstance(Class.java:1319)
09-28 21:18:52.636: E/AndroidRuntime(686): at android.app.Instrumentation.newActivity(Instrumentation.java:1023)
09-28 21:18:52.636: E/AndroidRuntime(686): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1870)
09-28 21:18:52.636: E/AndroidRuntime(686): ... 11 more