当前位置: 首页 > 面试题库 >

载入保存的分数

杭胜
2023-03-14
问题内容

我是新手。我正在制作一个应用,其中您有15秒的得分,然后它会保存您的得分并启动另一个活动,在该活动中,我必须加载已保存的得分并显示该得分,而不是显示该文本视图,但是我不知道该怎么做。这是第一个代码:

package com.cannongaming.supertouch;

import java.io.FileOutputStream;
import java.util.concurrent.TimeUnit;

import android.support.v7.app.ActionBarActivity;
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.os.CountDownTimer;

public class StartActivity<TextView> extends ActionBarActivity implements OnClickListener{
    Button buttonTap, buttonLet;
    TextView textScore, textTime;
    int score=0;
    byte[] scoreBytes = new byte[3];
    String filename = "myscore";
    int timer = 15000; // 1000 = 1 second

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_start);

        //1
        buttonTap = (Button)findViewById(R.id.buttonTap);
        buttonLet = (Button)findViewById(R.id.buttonLet);
        textScore = (TextView)findViewById(R.id.textScore);
        textTime = (TextView)findViewById(R.id.textTime);
        scoreBytes[0] = (byte) score;
        scoreBytes[1] = (byte) (score >> 8);
        scoreBytes[2] = (byte) (score >> 16);
        ((android.widget.TextView) textTime).setText("00:00:15");

        //2
        ((android.widget.TextView) textScore).setText(String.valueOf(score));

        //3
        buttonTap.setOnClickListener(this);

    buttonLet.setOnClickListener(new OnClickListener() {
    public void onClick(View view) {

        final CounterClass timer = new CounterClass(15000, 1000);
        timer.start();
        score++;
        ((android.widget.TextView) textScore).setText(String.valueOf(score));
        view.setVisibility(View.GONE);
    }});
    }
    public void onClick(View src){
        switch(src.getId()){
        case R.id.buttonTap:
            score++;
            ((android.widget.TextView) textScore).setText(String.valueOf(score));
            break;
        }
    }

    public class CounterClass extends CountDownTimer {

        public CounterClass(long millisInFuture, long countDownInterval){
            super(millisInFuture, countDownInterval);
            // TODO Auto-generated constructor stub
        }

        public void onTick(long millisUntilFinished){

            long millis = millisUntilFinished;
            String hms = String.format("%02d:%02d:%02d", TimeUnit.MILLISECONDS.toHours(millis),
                    TimeUnit.MILLISECONDS.toMinutes(millis) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis)),
                    TimeUnit.MILLISECONDS.toSeconds(millis) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis)));
            System.out.println(hms);
            ((android.widget.TextView) textTime).setText(hms);
        }

         @Override
public void onFinish() {
    getSharedPreferences().edit().putInt("SOME_IDENTIFIER", score).commit();
    Intent i = new Intent(getApplicationContext(), ScoreActivity.class);
    startActivity(i);
}
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.start, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
}

这是在第一个之后开始的另一个:

package com.cannongaming.supertouch;

import java.io.BufferedReader;

public class ScoreActivity extends ActionBarActivity {
    Button buttonOk;
    TextView textFinal;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_score);
        textFinal = (TextView)findViewById(R.id.textFinal);
int defaultValue = 0;
int score = getSharedPreferences().getInt("SOME_IDENTIFIER", defaultValue);
textFinal.setText(score);

    }

    @Override
    public void onBackPressed() {
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.score, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
}

编辑:我什至不确定它是否真的保存在第一个,所以请帮助我。


问题答案:

在StartActivity方法中覆盖的onFinish中,只需执行以下操作:

    @Override
    public void onFinish() {
        getSharedPreferences("APP", MODE_PRIVATE).edit().putInt("SOME_IDENTIFIER", score).commit();
        Intent i = new Intent(getApplicationContext(), ScoreActivity.class);
        startActivity(i);
    }

然后在ScoreActivity的onCreate方法上:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_score);
    textFinal = (TextView)findViewById(R.id.textFinal);
    int defaultValue = 0;
    int score = getSharedPreferences("APP", MODE_PRIVATE).getInt("SOME_IDENTIFIER", defaultValue);
    textFinal.setText(score);

}


 类似资料:
  • 我想要的是在这一点上(当物体碰撞和游戏结束是真的),分数被保存,然后游戏结束场景被加载。我如何在游戏结束时保存分数,然后将其与保存的最高分一起加载到游戏结束场景中??

  • 保存分数 保存分数。可供游戏场景使用。保存用户当前互动实例下的成就值。如果不是历史新值,也就是在minPoint和maxPoint之间的值就不要调saveScore了。 /** * Tida.queryScore 获取游戏分数后的回调函数数据 * @param {object} options 输入参数 * @param {number} options.value 分数 * @param

  • This tutorial describes how to save and load models in TensorFlow.js. Saving and loading of models is an important capability. For example, how do you save the weights of a model fine-tuned by data on

  • 本文向大家介绍keras 权重保存和权重载入方式,包括了keras 权重保存和权重载入方式的使用技巧和注意事项,需要的朋友参考一下 如果需要全部权重载入,直接使用权重载入方式 model.save_weights('./weigths.h5') model2.load_weights('./weigths.h5') 但是有时候你只需要载入部分权重 所以你可以这样操作 首先,为所有层命名,在层中直接

  • 希望你能帮助我。当运行应用程序时,它正在工作,但当我再次运行时,它不工作,并且没有发现错误。我不知道为什么,但有时它起作用,但有时它不起作用。这是我的密码。。。。 公共类filldisResult扩展了AppCompative活动{ SharedPreferences SharedPreferences=getSharedPreferences(SCOREPREFERENCE,MODE_PRIVA

  • 译者 bruce1408 作者: Matthew Inkawhich 本文提供有关Pytorch模型保存和加载的各种用例的解决方案。您可以随意阅读整个文档,或者只是跳转到所需用例的代码部分。 当保存和加载模型时,有三个核心功能需要熟悉: torch.save: 将序列化对象保存到磁盘。 此函数使用 Python 的pickle模块进行序列化。使用此函数可以保存如模型、tensor、字典等各种对象。