2016-04-11 29 views
0

每次用戶單擊一個位圖時,我都想要一個分數合計爲分數變量。這個分數將被用於另一個班級。但到目前爲止,我不能得到它的工作,運行時我沒有得到任何錯誤,但它總是顯示0(這是文本視圖中的默認字符串)。在另一個腳本(Java,Android Studio)中設置一個int

這是一個計數的分數,而在另一個腳本應該「設置」,它的方法:

@Override public void run(){ 

      Point size = new Point(); 
      Display display = getWindowManager().getDefaultDisplay(); 
      display.getSize(size); 
      Random wR = new Random(); 
      Random hR = new Random(); 
      int width = size.x; 
      int height = size.y; 
      int randomW = wR.nextInt(width-50)+50; 
      int randomH = hR.nextInt(height-50)+50; 

      CheckScore scoreClass = new CheckScore(); 

      while (running){ 

       if(!surface.getSurface().isValid()) 
        continue; 

       Canvas canvas = surface.lockCanvas(); 
       canvas.drawColor(Color.rgb(85, 107, 47)); 
       canvas.drawBitmap(incect[frame], randomW, randomH, null); 

       if ((touch.x >= randomW && touch.x <(randomW + xBitmap) && (touch.y >= randomH && touch.y < (randomH+yBitmap)) && move == true)){ 
        randomW = wR.nextInt(width-50)+50; 
        randomH = hR.nextInt(height-50)+50; 
        if (randomW > width - 200){ 
         randomW = width - 200; 
        } 
        if (randomH > height - 200){ 
         randomH = height - 200; 
        } 
        canvas.drawBitmap(incect[frame], randomW, randomH, null); 
        hasMoved = true; 

        scoreClass.score = score; 
        score = score +1; 
       } 

這是一個應該收到的得分並顯示它的腳本:

package com.example.bena.23; 

import android.app.Activity; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.widget.TextView; 

public class CheckScore extends AppCompatActivity { 

    int score; 

    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.score); 
     getScore(); 
    } 

    public void getScore(){ 
     TextView text = (TextView)findViewById(R.id.thisScore); 
     text.setText(Integer.toString(score)); 
    } 
} 

由於腳本大小,我只寫了方法(run())。如果有人能夠幫助我解決這個問題,我將非常感激。

+0

可能的重複[如何在Android上的活動之間傳遞數據?](http://stackoverflow.com/questions/2091465/how-do-i-pass-data-between-activities-on-android) –

+0

切勿在Android中使用'新的Activity()'。使用'意圖' –

回答

0

只有在創建活動時才調用getScore()方法。用戶在點擊位圖後應該調用該方法。

此外,你不應該像這樣的活動。如果你想打開一個活動,使用的意圖(this可能是您將從這裏啓動另一個的活動):我建議你創建一個Java類爲你的分數

startActivity(new Intent(this, CheckScore.class)); 

,並將其存儲在一個靜態變量,必要時在run()方法中更改它。 然後,在執行setText()時,讓CheckScore活動檢索變量的值。糾正我,如果我不正確地理解你的想法:run()方法和CheckScore是兩個不同的活動(不能同時顯示)?

+0

謝謝你的回答,run()是另一項活動中的一種方法,CheckScore是一項活動。我只發佈了運行方法,因爲該腳本非常大。 – Taegos

+0

你的方法奏效,謝謝! – Taegos

相關問題