Повторное использование действия из двух действий, через startActivityForResult - PullRequest
2 голосов
/ 25 января 2012

У меня есть два действия (ACT1 и ACT2), и оба вызывают другое действие (ACT3), используя startActivityForResult (намерение, 0). Я не очень странный, потому что ACT1 правильно получает результат в своем методе onActivityResult, а ACT2 - нет. Просто onActivityResult в этом случае не срабатывает. ¿Для этого есть причина, или это ошибка?

Заранее спасибо!

p.s: добавлен код


public class ACT1 extends Activity
{
  .........


  @Override
  protected void onListItemClick(ListView l, View v, int position, long id)
  {
    ..........

    Intent intent = new Intent(this, ACT3.class);
    startActivityForResult(intent, 0);
  }

  @Override
  protected void onActivityResult(int requestCode, int resultCode, Intent data)
  {
    super.onActivityResult(requestCode, resultCode, data);

    Log.d(TAG, "ACT1: onActivityResult");

    this.finish();
  }
}

public class ACT2 extends Activity
{
.........


  @Override
  protected void onListItemClick(ListView l, View v, int position, long id)
  {
    ..........

    Intent intent = new Intent(this, ACT3.class);
    startActivityForResult(intent, 0);
  } 

  @Override
  protected void onActivityResult(int requestCode, int resultCode, Intent data)
  {
    super.onActivityResult(requestCode, resultCode, data);

    Log.d(TAG, "ACT2: onActivityResult");

    this.finish();
  } 
}

public class ACT3 extends Activity
{
.......


  @Override
  public void onClick(View v)
  {
    switch (v.getId())
    {
        case R.id.phaBtnAceptar:
            intent = new Intent();
            intent.putExtra("alarmTime", alarmTime);
            setResult(Activity.RESULT_OK, intent);

            finish();

            break;

        ........
    }
  }
}

здесь метод, который устанавливает сигнал тревоги, который вызывает ACT2 (AlarmaListaActivity)

private static void asignarAlarma(Context ctx, String idLista, String nombreLista, long horaInicioAlarma)
{
    String idAlarma = DAOMarket.getInstance().insertarAlarma(idLista, nombreLista, "" + horaInicioAlarma, "0");

    Intent intent = new Intent(ctx, ACT2.class);
    intent.putExtra("idLista", idLista);
    intent.putExtra("nombreLista", nombreLista);
    intent.putExtra("horaInicioAlarma", horaInicioAlarma);

    PendingIntent mAlarmSender = PendingIntent.getActivity(ctx, Integer.parseInt(idAlarma), intent, PendingIntent.FLAG_UPDATE_CURRENT);

    AlarmManager am = (AlarmManager) ctx.getSystemService(Context.ALARM_SERVICE);
    am.set(AlarmManager.RTC_WAKEUP, horaInicioAlarma, mAlarmSender);
}

1 Ответ

0 голосов
/ 25 января 2012

в act3, попробуйте изменить

intent = new Intent();

с

Intent intent = getIntent();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...