【发布时间】:2017-01-30 15:16:48
【问题描述】:
我正在开发一个游戏,其中我有一个可序列化的类,它有一个 score 参数,最初设置为 0。 现在我想要的是,当分数大于 1 时,分数值将传递给我的主要活动,并在主要活动中显示一些吐司 这是我的 serializable 类代码:
public class Game implements Serializable{
private static final long serialVersionUID = 8326065952389292265L;
private int score = 0;
这是我的分数增加,当它大于 1 时,分数值应该传递给主要活动
if(bird.GetX()+bW > px1 && bird.GetX() < px2)
{
if(birdY1>=minY && birdY2<=maxY)
{
}
else
{
if(!boom)
SoundManager.playSound(5, 1);
boom = true;
bird.SetState(0);
}
score = (i+1);
if (score>1)
{
}
}
我很困惑如何将此分值发送到我的主要活动,然后如何在主要活动中获取它。谁能帮我一些小代码说明它是如何完成的?任何帮助将不胜感激
这是我的 MainActivity 代码:
public class MainActivity extends Activity {
private static final String TAG = MainActivity.class.getSimpleName();
private SurfaceView mainGameView;
static Bitmap bitmap;
static Canvas canvas;
private GameLogic gameLogic;
private Game gamescore;
private ArrayList<String> wordsDictionary;
private Context context;
private MyTask mt;
private boolean dictionaryLoaded;
private ImageView image;
private Activity activity;
Intent playbackServiceIntent;
@TargetApi(Build.VERSION_CODES.GINGERBREAD)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
activity = this;
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
requestWindowFeature(Window.FEATURE_NO_TITLE);
SoundManager.getInstance();
SoundManager.initSounds(this);
SoundManager.loadSounds();
SoundManager.playSound(1, 1);
if(true)
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
else
getWindow().setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN, WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN);
context = this;
gameLogic = new GameLogic(context, getResources());
dictionaryLoaded = false;
SharedPreferences sPref = getPreferences(MODE_PRIVATE);
String data1 = sPref.getString("data1", "");
mainGameView = new MainGameView(this, gameLogic);
final RelativeLayout layout = new RelativeLayout(context);
layout.addView(mainGameView);
Runnable runnable = new Runnable() {
@Override
public void run() {
}
};
new Thread(runnable).start();
if(true)
{
setContentView(layout);
}
}
【问题讨论】:
-
在 Game 类中创建返回分数的方法
-
@pcpriyanka 我按照某人的建议在最后一天尝试了,但是当分数达到 1 时没有任何显示
-
Game 与 MainActivity 的关系,是 MainActivity.class 的字段还是他们只是通过消息“聊天”。简而言之,能否提供 MainActivity 的代码?
-
@MichaelSpitsin 我刚刚编辑过请检查:)
-
@ArslanAli Okey。下一个问题是你如何与 Game 交互。你是使用直接方法调用,还是游戏在另一个线程或服务中运行?
标签: android android-activity serialization