在android意图之间发送整数

时间:2014-05-04 18:31:21

标签: android

从mainActivity我试图访问名为Game_Mode的intent中的全局变量。但我收到的错误告诉我它不存在。

if(player==1){
        startActivity(Game_Mode);
        type=Game_Mode.type;}

这是在MainActivity

Intent Game_Mode = new Intent(this, Game_Mode.class);
    Intent two_three = new Intent(this, Two_three.class);

    player = game.connect("sslab02.cs.purdue.edu", 5432);
    player=1;
    if(player==1){
        startActivity(Game_Mode);
        type=Game_Mode.type;

这是在Game_Mode

public class Game_Mode extends ActionBarActivity {
int mode = 1;
int size = 1;
static int type = 0;

3 个答案:

答案 0 :(得分:0)

static int type = 0;

type不公开,只有package-level,因此请使用public关键字public

public static int type = 0;

无论如何,这里的问题都在这个代码块中

Intent Game_Mode = new Intent(this, Game_Mode.class);
Intent two_three = new Intent(this, Two_three.class);

player = game.connect("sslab02.cs.purdue.edu", 5432);
player=1;
if(player==1){
    startActivity(Game_Mode);
    type=Game_Mode.type;

您有一个名为intent的{​​{1}}变量(该类的名称相同),因此当您执行Game_Mode时,它会检查Game_Mode.type类中的字段不在你的班。修复它的最好方法是简单地将其重命名为其他内容:

Intent

遵循关于名称的Java约定。


无论如何,如果您需要在Activity之间传递数据,则应使用Intent gameMode = new Intent(this, Game_Mode.class); Intent two_Three = new Intent(this, Two_three.class);// here too you could call it twoThree player = game.connect("sslab02.cs.purdue.edu", 5432); player=1; if(player==1){ startActivity(gameMode); type=Game_Mode.type;

答案 1 :(得分:0)

老实说,我建议使用SharedPreferences来存储和检索应用程序级变量,因为它们非常安全可靠。

答案 2 :(得分:0)

Game_Mode是一个类,您已经在类的名称中创建了一个intent。

Intent Game_Mode = new Intent(this, Game_Mode.class);

请专注于那个。