Как запустить Activity С помощью разных Button? Java
мне необходимо запустить другой экран и перенести в него информацию полученную от нажатия одной из кнопок. Нужно чтобы кнопки запускали следующее Activity и переносили информацию о нажатой кнопке.
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
Button EngBtn;
Button FrBtn;
Button EspBtn;
Button RusBtn;
Button GermBtn;
int Lang = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
EngBtn = (Button) findViewById(R.id.EngBtn);
EngBtn.setOnClickListener(this);
FrBtn= (Button) findViewById(R.id.FrBtn);
FrBtn.setOnClickListener(this);
EspBtn= (Button) findViewById(R.id.EspBtn);
EspBtn.setOnClickListener(this);
RusBtn= (Button) findViewById(R.id.RusBtn);
RusBtn.setOnClickListener(this);
GermBtn= (Button) findViewById(R.id.GermBtn);
GermBtn.setOnClickListener(this);
}
public void onClick(View v) {
switch (v.getId()) {
case R.id.EngBtn:
Lang=1;
break;
case R.id.FrBtn:
Lang=2;
break;
case R.id.EspBtn:
Lang=3;
break;
case R.id.RusBtn:
Lang=4;
break;
case R.id.GermBtn:
Lang=5;
break;
default:
break;
}
}
Ответы (1 шт):
Автор решения: pavlofff
→ Ссылка
Метод onClick() дополняем вызовом активити с параметром:
public void onClick(View v) {
switch (v.getId()) {
case R.id.EngBtn:
Lang=1;
break;
case R.id.FrBtn:
Lang=2;
break;
case R.id.EspBtn:
Lang=3;
break;
case R.id.RusBtn:
Lang=4;
break;
case R.id.GermBtn:
Lang=5;
break;
default:
break;
}
Intent i = new Intent(this, SecondActivity.class);
i.putExtra("lang", Lang);
startActivity(i);
finish();
}
Получаем в другой активити (обычно в методе onCreate():
Bundle b = getIntent().getExtras();
int Lang = b.getInt("lang");
PS: в Java имена переменных принято писать с маленькой буквы - lang.