我正在创建一个简单的游戏,在5秒计时器到期后检查两个条件,条件一是升级,意图开始相同的活动,我打算每次玩家遇到时将我的变量等级增加一提高游戏等级的条件。
第二个条件启动另一个活动,即失败屏幕。
我不希望每个级别增加一个不同的屏幕,当我可以加载相同的活动并继续通过条件时,但当Activity再次启动时,level变量重置为其初始值,游戏从不叶子级别1.启动它时,有没有办法将变量值传递给活动?
以下是我的活动代码:
public class FirstOneActivity extends Activity {
/** Called when the activity is first created. */
MediaPlayer ourSong;
int counter;
Button add;
Thread timer;
TextView display;
TextView lvl;
int level = 1;
int time;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ourSong = MediaPlayer.create(FirstOneActivity.this, R.raw.click);
counter = 0;
add = (Button) findViewById (R.id.bAdd);
display = (TextView) findViewById (R.id.tvDisplay);
lvl = (TextView) findViewById (R.id.lvldisplay);
add.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
counter++;
//ourSong.start();
display.setText("Your total is "+ counter);
if(counter ==1)
{
set();
timer.start();
}
}
});
timer = new Thread(){
public void run(){
try{
sleep(time);
}catch(InterruptedException e){
e.printStackTrace();
}finally{
test();
}
}
};
}
public void test(){
if(counter>= 10 && level == 1 || counter>= 15 && level == 2)
{
Intent openSplash = new Intent("com.deucalion0.FIRSTONE");
startActivity(openSplash);
level++;
}
else if(counter<10 && level == 1 || counter< 15 && level == 2){
Intent openNext = new Intent("com.deucalion0.NEXT");
startActivity(openNext);
}
}
public void set(){
if(level == 1)
{ lvl.setText("Level is "+ level);
time = 5000;
}
else if (level == 2)
{lvl.setText("Level is "+level);
time = 5000;
}
}
}
感谢任何建议。
答案 0 :(得分:6)
不确定。要在intent中添加一些数据,只需使用putExtra方法,如下所示:
openNext.putExtra("levelNum", 2);
然后在被调用的Activity中,检索附加组件并拉出你想要的那个,如下所示:
// in onCreate() method
int levelNum = getIntent().getExtras().getInt("levelNum");
答案 1 :(得分:2)
创建Intent时,这将是如何添加数据:
Intent openNext = new Intent("com.deucalion0.NEXT");
openNext.putExtra("Level", yourLevelVariable);
startActivity(openNext);
然后在NextActivity中使用onCreate(),您将获得变量:
String level = getIntent().getStringExtra("Level");
编辑:除了getStringExtra之外还有其他方法,如果你想要一个整数或...
编辑您可以将该级别存储在共享首选项中,默认值为1,并根据需要增加。