deu*_*on0 1 android android-intent
我正在创建一个简单的游戏,在5秒计时器到期后检查两个条件,条件一是升级,意图开始相同的活动,我打算每次玩家满足条件时将我的变量等级增加一提高了游戏水平.
第二个条件启动另一个活动,即失败屏幕.
我不希望每个级别增加一个不同的屏幕,当我可以加载相同的活动并继续通过条件,但随着Activity再次启动,级别变量重置为其初始值,游戏永远不会离开级别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;
}
}
}
Run Code Online (Sandbox Code Playgroud)
任何建议表示赞赏.
当然.要在intent中放入一些数据,只需使用putExtra方法,如下所示:
openNext.putExtra("levelNum", 2);
Run Code Online (Sandbox Code Playgroud)
然后在被调用的Activity中,检索附加组件并拉出你想要的那个,如下所示:
// in onCreate() method
int levelNum = getIntent().getExtras().getInt("levelNum");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3755 次 |
| 最近记录: |