У меня есть четыре кнопки, указывающие на одно действие, как узнать, какая кнопка вызвала открытие действия? - PullRequest
0 голосов
/ 11 марта 2012
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 ]

2 голосов
/ 11 марта 2012

Вам нужно поместить Дополнения в Намерение перед началом Действия.

eas.putExtra("lvl", "2");
 startActivity(eas);     
2 голосов
/ 11 марта 2012

Вам необходимо позвонить 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 голос
/ 11 марта 2012

Они советуют вам поместить eas.putExtra перед вызовом намерения, потому что putExtra - это способ добавления дополнительных данных в намерение, чтобы вы могли извлекать их в новом действии. Получив намерение, вы можете извлечь эти сериализованные данные из объекта намерения и использовать их в своей новой деятельности. Именно так вы можете передавать «лишние» данные между действиями, потому что в Android каждое действие является собственной маленькой песочницей и может работать с другими действиями только через намерения.

...