저는 헬퍼 클래스 생성에 대한 자습서 나 예제를 찾으려고했습니다. 내가 계속 실행하는 유일한 방법은 데이터베이스 도우미에 대한 자습서입니다. 내가 뭘하고 싶은 건 반복적 인 함수 또는 문장 등을 사용하는 대신에 ... 나는 반복적 인 코드를 포함하도록 도우미 클래스를 만들려고했지만 어떤 이유로 그것을 작동시키지 못한다. 빠른 예제를 어떻게/무엇을하려고하는지 보여줍니다.Android 함수 도우미 클래스
지금 내가 전화 할 때
public class Helper extends Activity {
Context ctx;
static SharedPreferences settings;
public static SharedPreferences.Editor edit;
public static final String PREF = "PrefTest";
static boolean c;
static int B;
static String A, a, b, C, D, E, F;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
settings = getSharedPreferences(PREF,MODE_PRIVATE);
edit = settings.edit();
}
public static String userId() {
a = settings.getString("Phone", "");
return a;
}
public static String pwd(){
b = settings.getString("pwd", "");
return b;
}
public static boolean lock(){
c = settings.getBoolean("pwd", false);
return c;
}
public static String version(Context ctx) {
A = ctx.getResources().getString(R.string.version);
return A;
}
public static void saveUser(String user){
if(user == null || user == ""){
edit.putString("Phone", "User N/A");
edit.commit();
}else{
edit.putString("Phone", user);
edit.commit();
}
}
public static void savePwd(String D){
if(D == null || D ==""){
edit.putString("pwd",D);
edit.commit();
}else{
edit.putString("pwd",Error.validate(D + userId()));
edit.commit();
}
}
public static void saveLock(boolean lock) {
if (lock){
edit.putBoolean("Locked", true);
edit.commit();
}else{
edit.putBoolean("Locked", false);
edit.commit();
}
}
public static int passwordCheck() {
if (pwd() == null || pwd() == "") {
B = 0;
} else {
B = 1;
}
return B;
}
public static int phoneCheck() {
if (userId() == null || userId() == "") {
B = 0;
} else {
B = 1;
}
return B;
}
public static int lockCheck() {
if (lock()) {
B = 1;
} else {
B = 0;
}
return B;
}
}
도우미 클래스 : 그리고 지금 막 다른 골목으로 실행하고 계속 보는 이유
int ab = Helper.phoneCheck();
if(ab == 0){
try{
Helper.saveUser("TestUser");
}catch(Exception e){
e.printStackTrace();
}
}
그것은 응용 프로그램 충돌이 알아 내려고 노력에 노력하고 누군가가 나를 도와 줄 수 있다면
LogCat
05-30 01:25:11.067: D/dalvikvm(1411): GC_EXTERNAL_ALLOC freed 43K, 53% free 2551K/5379K, external 716K/1038K, paused 125ms
05-30 01:25:11.237: D/AndroidRuntime(1411): Shutting down VM
05-30 01:25:11.237: W/dalvikvm(1411): threadid=1: thread exiting with uncaught exception (group=0x40015560)
05-30 01:25:11.277: E/AndroidRuntime(1411): FATAL EXCEPTION: main
05-30 01:25:11.277: E/AndroidRuntime(1411): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.test.prefapp/com.test.prefapp.StartUp}: java.lang.NullPointerException
05-30 01:25:11.277: E/AndroidRuntime(1411): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
05-30 01:25:11.277: E/AndroidRuntime(1411): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
05-30 01:25:11.277: E/AndroidRuntime(1411): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
05-30 01:25:11.277: E/AndroidRuntime(1411): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
05-30 01:25:11.277: E/AndroidRuntime(1411): at android.os.Handler.dispatchMessage(Handler.java:99)
05-30 01:25:11.277: E/AndroidRuntime(1411): at android.os.Looper.loop(Looper.java:123)
05-30 01:25:11.277: E/AndroidRuntime(1411): at android.app.ActivityThread.main(ActivityThread.java:3683)
05-30 01:25:11.277: E/AndroidRuntime(1411): at java.lang.reflect.Method.invokeNative(Native Method)
05-30 01:25:11.277: E/AndroidRuntime(1411): at java.lang.reflect.Method.invoke(Method.java:507)
05-30 01:25:11.277: E/AndroidRuntime(1411): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
05-30 01:25:11.277: E/AndroidRuntime(1411): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
05-30 01:25:11.277: E/AndroidRuntime(1411): at dalvik.system.NativeStart.main(Native Method)
05-30 01:25:11.277: E/AndroidRuntime(1411): Caused by: java.lang.NullPointerException
05-30 01:25:11.277: E/AndroidRuntime(1411): at com.test.prefapp.Helper.userId(Helper.java:51)
05-30 01:25:11.277: E/AndroidRuntime(1411): at com.test.prefapp.Helper.phoneCheck(Helper.java:194)
05-30 01:25:11.277: E/AndroidRuntime(1411): at com.test.prefapp.StartUp.onCreate(StartUp.java:44)
05-30 01:25:11.277: E/AndroidRuntime(1411): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
05-30 01:25:11.277: E/AndroidRuntime(1411): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
발생 원인 : java.lang.NullPointerException 05-30 01 : 25 : 11.277 : E/AndroidRuntime (1411) : at com.test.prefapp.Helper.userId (Helper.java:51) 어떤 이유로 ID가 null입니다. – cerkiewny
나는 그것 때문에 oncreate 메서드 – acrichm
외부의 함수를 가지고 있기 때문에 궁금하네요.이 주석보다, 어쩌면 사용자 ID가 const이므로 컴파일러가 프로그램 시작시이 데이터를 설정하기로 결정했습니다. helper.java 클래스? – cerkiewny