У меня есть приложение, в котором я хочу, чтобы два запускали одно из двух действий на основе нажатой кнопки, а затем возвращали определенные значения из вызванного действия. Я знаю, что должен использовать requestCode, чтобы проверить активность. Но в любом случае приложение предполагает, что первое действие называется. Вот часть моего кода в основном классе.
public void onClick(View v) {
switch(v.getId())
{
case R.id.start:
Intent i = new Intent(this, one.class);
startActivityForResult(i, FIRST_CODE);
break;
case R.id.qwe:
Intent j = new Intent(this, two.class);
startActivityForResult(j, SECOND_CODE);
break;
}
И позже,
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
if(requestCode==FIRST_CODE)
{
if(resultCode==RESULT_OK)
{
min = Integer.parseInt(data.getStringExtra("minutes"));
sec = Integer.parseInt(data.getStringExtra("seconds"));
test1.setText(min + ":" + sec);
}
}
else if(requestCode==SECOND_CODE)
{
if(resultCode==RESULT_OK)
{
runMin = Integer.parseInt(data.getStringExtra("minutes"));
runSec = Integer.parseInt(data.getStringExtra("seconds"));
test2.setText(runMin + ":" + sec);
}
}
}
В моих классах 'one' и 'two' это мой код:
min = (EditText)findViewById(R.id.smin);
sec = (EditText)findViewById(R.id.ssec);
String mtime, stime;
mtime = min.getText().toString();
stime = sec.getText().toString();
dat2 = new Intent();
dat2.putExtra("minutes", mtime);
dat2.putExtra("seconds", stime);
setResult(RESULT_OK, dat2);
finish();
Это одинаково в обоих классах. Это неправильно? Благодарю. :)