2013-10-21 2 views
0

저는 매우 신입생 android입니다. 내가 SomeActivity에 해당하는 페이지로 때 나는 내 응용 프로그램 충돌, 일부 SomeActivity에 카운터를 가지고 있지만 :안드로이드 액티비티에 카운터 추가

final TextView counter = (TextView) findViewById(R.id.laws_counter); 
ImageView handDown = (ImageView) findViewById(R.id.handViewDown); 
counter.setText("" + 0); 

나는 handown의 클릭에 카운터가 -1에 의해 idented 것을 원한다. 여기가

handDown.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Toast.makeText(NewsActivity.this, 
         "The favorite list would appear on clicking this icon", 
         Toast.LENGTH_LONG).show(); 
       setDown(); 
      } 

      private void setDown() { 
       String count = counter.getText().toString(); 
       int now_count = Integer.parseInt(count) +1; 
       counter.setText(String.valueOf(now_count)); 
      } 


     }); 

이 코드가 맞습니까?

업데이트 : 여기 당신이 그 기능을 구현하지만 쉬운 해결책이 될 것이라고 생각할 수있는 여러 가지가 있습니다 logcat

10-22 00:18:05.579: ERROR/AndroidRuntime(378): FATAL EXCEPTION: main 
     java.lang.RuntimeException: Unable to start activity ComponentInfo{com.donnfelker.android.bootstrap/com.donnfelker.android.bootstrap.ui.NewsActivity}: java.lang.NullPointerException 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647) 
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663) 
     at android.app.ActivityThread.access$1500(ActivityThread.java:117) 
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931) 
     at android.os.Handler.dispatchMessage(Handler.java:99) 
     at android.os.Looper.loop(Looper.java:123) 
     at android.app.ActivityThread.main(ActivityThread.java:3683) 
     at java.lang.reflect.Method.invokeNative(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:507) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
     at dalvik.system.NativeStart.main(Native Method) 
     Caused by: java.lang.NullPointerException 
     at com.donnfelker.android.bootstrap.ui.NewsActivity.onCreate(NewsActivity.java:41) 
     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611) 
     ... 11 more 
+0

충돌에서 logcat을 게시하십시오. 이 코드는 두 개의 다른 '활동'에서 온 것입니까? – codeMagic

+0

@codeMagic 내 게시물을 업데이트했습니다. – user1611830

+0

'NewsActivity'의 41 번째 줄에는 무엇이 있습니까? 뭔가 'null'입니다. 'Activity'에서'setContentView()'를 사용하여 팽창시킨 xml의'counter'와'handViewDown' id가'View's입니까? – codeMagic

답변

1

입니다.

public class PreferencesData { 

public static void saveInt(Context context, String key, int value) { 
    SharedPreferences sharedPrefs = PreferenceManager 
      .getDefaultSharedPreferences(context); 
    sharedPrefs.edit().putInt(key, value).commit(); 
} 

public static int getInt(Context context, String key, int defaultValue) { 
    SharedPreferences sharedPrefs = PreferenceManager 
      .getDefaultSharedPreferences(context); 
    return sharedPrefs.getInt(key, defaultValue); 
} 
} 

그런 다음 단순히 어떤 활동에 카운터를 저장 putInt 메소드를 호출하고 getInt는 다른 활동에 다시 얻을 :

는 도우미 메서드를 확인합니다. 같은 열쇠를 두 곳에서 사용하는 한.

관련 문제