android - 在 Android 中使用 Intent 时将变量传递给 An Activity

标签 android android-intent

我正在创建一个简单的游戏,在 5 秒计时器到期并检查两个条件后,条件一是升级, Intent 开始相同的 Activity ,我打算在每次玩家遇到时将我的变量级别增加一个提高游戏等级的条件。

第二个条件启动另一个 Activity ,即失败屏幕。

我不希望每个升级增量都有不同的屏幕,当我可以加载相同的 Activity 并继续通过条件时,但是随着 Activity 再次启动,级别变量重置为其初始化值,游戏永远不会离开第 1 级。是否有任何方法可以在启动 Activity 时将变量值传递给 Activity ?

这是我的 Activity 代码:

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;
    }



}


}

如有任何建议,我们将不胜感激。

最佳答案

当然。要将一些数据放入 Intent 中,只需使用 putExtra方法,像这样:

openNext.putExtra("levelNum", 2);

然后在调用的 Activity 中,检索 extras 包并拉出你想要的那个,如下所示:

// in onCreate() method
int levelNum = getIntent().getExtras().getInt("levelNum");

关于android - 在 Android 中使用 Intent 时将变量传递给 An Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9474764/

相关文章:

android - 在我的应用程序中即时上传和 Google+ 图片

php - 如何提高联系WebService的性能?

android - 如何在 Oreo 后台监控地理围栏?

android - 如何强制共享 Intent 打开特定应用程序?

带有 AnimationDrawable 源的 Android Imageview 改变大小

android - 使用 ionic 推送通知的自定义声音

java - 如何使用 Intent 添加日历事件?

java - 来自 JavascriptInterface 的 android startActivity

android - 使用 Intent 发送短信不会在某些设备上添加收件人

android - 找到调用 intent/activity 的按钮的 id?安卓