2

如果有人能告诉我不同​​的方法来做到这一点,我将不胜感激。如何将类变量重置为 0 或默认值?我使用类变量,因为我不知道另一种方法来做到这一点。在我的游戏结束后,我将结果放在类变量中,因为我有两轮游戏,在第一轮结束后我添加结果,并且类变量对这个原因有好处,即使在我重新启动我的游戏方法后它仍然保留我以前的结果。第二轮结束后,我将该结果添加到上一个结果中,然后关闭活动并将文本结果设置为按钮的文本。但是当我单击新游戏时,该按钮仍然保留该文本,因为类变量仍然保留它。当我进行新游戏时如何重置该类变量?

这是我的游戏代码,其中一些(100分是开始金额,游戏进度会变低):

public class Asocijacije extends Activity implements OnClickListener{

int brojPoenaAsocijacije = 100;
    public static int brojPoenaUkupno;

然后我在这里跳过很多代码,这里是我添加点的地方。brojPoenaAsocijacije 是在该回合中获得的积分:

brojPoenaUkupno = brojPoenaUkupno + brojPoenaAsocijacije;

这是我的主要活动,我将类变量中的点设置为按钮(我在其中添加了评论):

public class Izbor extends Activity implements OnClickListener{

    Asocijacije poeni = new Asocijacije();

    Button toploHladno, asocijacije, cigle, spojnice, nazad, poeniTH, poeniAso, poeniCigle, poeniSpojnice;
    TextView naslov;
    public boolean music;
    MediaPlayer buttonClicks, buttonBack;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        requestWindowFeature(Window.FEATURE_NO_TITLE);   //full screen
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

        setContentView(R.layout.izbor);

        SharedPreferences getPrefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
        music = getPrefs.getBoolean("checkbox", true);

        addListenerOnButton();

    }



    private void addListenerOnButton() {
        buttonClicks = MediaPlayer.create(this, R.raw.click);
        buttonBack = MediaPlayer.create(this, R.raw.button31);

        Typeface naslovType = Typeface.createFromAsset(getAssets(), "Lobster.ttf");
        Typeface dugmad = Typeface.createFromAsset(getAssets(), "Bebas.ttf");
        naslov = (TextView) findViewById(R.id.tvIzborNaslov);
        toploHladno = (Button) findViewById(R.id.bIzbor1);
        asocijacije = (Button) findViewById(R.id.bIzbor2);
        cigle = (Button) findViewById(R.id.bIzbor3);
        spojnice = (Button) findViewById(R.id.bIzbor4);
        nazad = (Button) findViewById(R.id.bIzborNazad);
        poeniTH = (Button) findViewById(R.id.bPoeniTH);
        poeniAso = (Button) findViewById(R.id.bPoeniAso);
        poeniCigle = (Button) findViewById(R.id.bPoeniCigle);
        poeniSpojnice = (Button) findViewById(R.id.bPoeniSpojnice);
        naslov.setTypeface(naslovType);
        toploHladno.setTypeface(dugmad);
        asocijacije.setTypeface(dugmad);
        cigle.setTypeface(dugmad);
        spojnice.setTypeface(dugmad);
        nazad.setTypeface(dugmad);
        poeniAso.setTypeface(dugmad);

        toploHladno.setOnClickListener(this);
        asocijacije.setOnClickListener(this);
        cigle.setOnClickListener(this);
        spojnice.setOnClickListener(this);
        nazad.setOnClickListener(this);

    }


    @Override
    protected void onStart() {
        super.onStart(); 
        poeniAso.setText("" + poeni.brojPoenaUkupno); //I do it here
    }

    public void onClick(View v) {
        switch(v.getId()){
        case R.id.bIzbor1:
            if(music == true){
                buttonClicks.start();
                    }
            startActivity(new Intent("rs.androidaplikacije.toplo_hladno.GAME"));
            break;
        case R.id.bIzbor2:
            if(music == true){
                buttonClicks.start();
                    }
            startActivity(new Intent("rs.androidaplikacije.toplo_hladno.ASOCIJACIJE"));
            break;
        case R.id.bIzbor3:
            if(music == true){
                buttonClicks.start();
                    }

            break;
        case R.id.bIzbor4:
            if(music == true){
                buttonClicks.start();
                    }

            break;
        case R.id.bIzborNazad:
            if(music == true){
                buttonBack.start();
                    }
            poeniAso.setText("");
            finish();
            break;
        }

    }

}
4

2 回答 2

2

因为我没有找到你开始新游戏的那段代码,我只能说:

Asocijacije.brojPoenaUkupno = 0;
于 2013-04-05T20:04:22.987 回答
1

当您关闭游戏内活动时,可能希望重置您的状态。

@Override
protected void onDestroy() {
    super.onDestroy();
    Asocijacije.brojPoenaUkupno = 0;
    //whatever other things need to be reset.
}
于 2013-04-05T20:16:13.023 回答