2012-03-11 58 views
0
Button novice = (Button) findViewById(R.id.novice); 

novice.setOnClickListener(new OnClickListener(){ 

    public void onClick(View v) { 
     Intent nov = new Intent(getApplicationContext(), gameface.class); 
     startActivity(nov); 
     nov.putExtra("lvl", "1"); 
    } 
}); 

Button easy1 = (Button) findViewById(R.id.easy); 
easy1.setOnClickListener(new OnClickListener(){ 
    public void onClick(View v) { 
     Intent eas = new Intent(getApplicationContext(), gameface.class); 
     startActivity(eas); 
     eas.putExtra("lvl", "2"); 
    } 
}); 

这是我的代码,所以我试图用按下按钮,并使用 这我有四个按钮指向单个活动,如何找出哪个按钮导致活动打开?

Intent g = getIntent(); 
String x = g.getStringExtra("lvl"); 

在新的活动来捕捉它是哪个按钮,但它不工作的想法发送数据。

有人能告诉我怎么了吗?

+0

hi shiva,在传递给startActivity()之前,总是先将Intent置于Intent中。 – 2012-03-11 10:45:49

回答

2

你需要调用eas.putExtra("lvl", "2");startActivity(eas);

public void onClick(View v) { 
    Intent eas = new Intent(getApplicationContext(), gameface.class); 
    eas.putExtra("lvl", "2"); 
    startActivity(eas); 
} 

此外,虽然在代码中没有提及,请确保您使用比较字符串“等于”,而不是==

+0

谢谢!发送数据后,我多么愚蠢地设置要发送的东西。 :P – 2012-03-11 18:11:47

+0

没问题。晚安 :) – MByD 2012-03-11 18:12:21

2

在开始活动之前,您需要将Extras添加到Intent中。

eas.putExtra("lvl", "2"); 
startActivity(eas);  
1

他们告诉你叫的意图,因为putExtra是你如何添加额外的数据的意图,所以你可以把它出新的活动之前把eas.putExtra。当您收到意图时,您可以从意向对象中提取该序列化数据并将其用于新活动中。这就是您如何在活动之间传递“额外”数据的原因,因为在Android中,每个活动都是自己的小沙盒,并且只能通过意图进行其他活动。