我有四个按钮重定向到一个活动,如何找出导致活动打开的按钮?

时间:2012-03-11 10:39:53

标签: android android-intent android-activity

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");

在新活动上捕获它是哪个按钮但它不起作用。

有人可以告诉我什么事吗?

3 个答案:

答案 0 :(得分: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);
}

此外,尽管代码中未提及,但请务必使用“等于”而不是==来比较字符串。

答案 1 :(得分:2)

您需要在启动活动之前将Extras放入Intent。

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

答案 2 :(得分:1)

他们告诉你在调用intent之前放入eas.putExtra,因为putExtra是你向intent添加额外数据的方式,所以你可以在新活动中将它拉出来。收到意图后,您可以从意图对象中提取此序列化数据,并在新活动中使用它。这就是你可以在活动之间传递“额外”数据的方法,因为在Android中,每个活动都是它自己的小沙箱,并且只能通过意图与其他活动一起运行。