2012-01-14 3 views
1

Я пытаюсь вызвать статический метод от другой деятельности, чтобы найти целое число для очков:Невозможно вызвать статические методы между деятельностью

public class HighscoreActivity extends Activity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.highscore); 

     TextView txtGuess = (TextView) findViewById(R.id.txtScore); 
     int temp = MastermindGameActivity.getScore(); 
     String score = Integer.toString(temp); 
     txtGuess.setText(score); 

    } 
} 

по телефону этого метода:

public static int getScore() 
{ 
    return score; 
} 

Почему это не сработает? Я получаю

01-14 21: 28: 54.347: ОШИБКА/AndroidRuntime (1485): неустранимый: Главный 01-14 21: 28: 54,347: ОШИБКА/AndroidRuntime (1485): java.lang. RuntimeException: невозможно запустить Activity ComponentInfo {sam.android.mastermind/sam.android.mastermind.HighscoreActivity}: java.lang.NullPointerException 01-14 21: 28: 54.347: ERROR/AndroidRuntime (1485): at android.app. ActivityThread.performLaunchActivity (ActivityThread.java:1647) 01-14 21: 28: 54.347: ERROR/AndroidRuntime (1485): at android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:1663) 01-14 21:28: 54.347: ERROR/AndroidRuntime (1485): at android.app.ActivityThread.access $ 1500 (ActivityThread.java:117) 01-14 21: 28: 54.347: ERROR/AndroidRuntime (1485): at android.app.ActivityThread $ H.handleMessage (ActivityThread.java:931) 01-14 21: 28: 54.347: ERROR/AndroidRuntime (1485) : at android.os.Handler.dispatchMessage (Handler.java:99) 01-14 21: 28: 54.347: ERROR/AndroidRuntime (1485): at android.os.Looper.loop (Looper.java:123) 01 -14 21: 28: 54.347: ERROR/AndroidRuntime (1485): at android.app.ActivityThread.main (ActivityThread.java:3683) 01-14 21: 28: 54.347: ERROR/AndroidRuntime (1485): в java. lang.reflect.Method.invokeNative (собственный метод) 01-14 21: 28: 54.347: ERROR/AndroidRuntime (1485): at java.lang.reflect.Method.invoke (Method.java:507) 01-14 21 : 28: 54.347: ERROR/AndroidRuntime (1485): at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:839) 01-14 2 1: 28: 54.347: ОШИБКА/AndroidRuntime (1485): at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:597) 01-14 21: 28: 54.347: ERROR/AndroidRuntime (1485): at dalvik.system.NativeStart.main (родной метод) 01-14 21: 28: 54.347: ERROR/AndroidRuntime (1485): вызвано: java.lang.NullPointerException 01-14 21: 28: 54.347: ERROR/AndroidRuntime (1485): у sam.android.mastermind.HighscoreActivity.blah (HighscoreActivity.java:27) 01-14 21: 28: 54.347: ERROR/AndroidRuntime (1485): at sam.android.mastermind.HighscoreActivity.onCreate (HighscoreActivity. java: 13) 01-14 21: 28: 54.347: ERROR/AndroidRuntime (1485): at android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1047) 01-14 21: 28: 54.347: ОШИБКА/AndroidRuntime (1485): at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:1611)-14 21: 28: 54,347: ОШИБКА/AndroidRuntime (1 485):
... 11 подробнее

Активность определяется явным.

+0

его исключения нулевого указателя.опубликовать весь журнал – nandeesh

+0

Я добавил как можно больше журнала logcat, есть ли другой способ получить журнал? – EmberZ

+0

Исключение в функции blah 27 линия highscoreActivity. Можете ли вы опубликовать эту функцию – nandeesh

ответ

5

Попробуйте это ..

MastermindGameActivity masterActivity = new MastermindGameActivity(); 

masterActivity.getScore(); 

Также вы можете попробовать передать его в качестве намерения, как я рекомендовал бы.

Intent intent=new Intent(this,Activity2.class); 
intent.putIntExtra("Score" score); 

И вытащить его в приемной деятельности

Intent sender=getIntent(); 
    int score = sender.getExtras().getInt("Score"); 
+0

Большое спасибо! У Kinda был момент ahh для принятия намерения, так что это было очень полезно! :) – EmberZ

Смежные вопросы