Как перейти к предыдущему действию с помощью setResult?

Мне нужно перейти к родительской активности, когда щелкнут любой элемент списка, с помощью setResult.

list.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View arg0) {
                    // TODO Auto-generated method stub
                    Log.d("gaurav", "list is clicked");

                    moveToEvent();
                }
            });

Мой метод moveToEvent:

public void moveToEvent() {
    Log.d("gaurav", "Move to evnet");
    Intent intent = new Intent();
    this.setResult(5, intent);
    // this.startActivity(intent);
    this.finish();

}

Используя этот код, я могу вернуться к родительской активности два или три раза, после чего он не вернется к родительской активности и не обновит свою собственную активность. Я не могу найти ее решение. Пожалуйста, помогите мне в этом вопросе

Я также попробовал метод onBackPressed, но тот же результат.

@Override 
public void onBackPressed() { 
    // TODO Auto-generated method
   Intent intent = new Intent(); 
   setResult(5, intent); 
   finish();

  super.onBackPressed();
  }

Пожалуйста, предложите мне, где я делаю ошибку.


person Gaurav Gupta    schedule 31.07.2012    source источник
comment
что значит какое-то время идет и потом не идет - значит активность не заканчивается?? Вы отладили?? Finish() вызывается все время ??   -  person Daud Arfin    schedule 31.07.2012
comment
попробуйте эту ссылку Попробуйте это руководство для подробного объяснения Надеюсь, это поможет nJoy! !   -  person moDev    schedule 31.07.2012
comment
В моем коде упоминается завершение, этот блок кода выполняется каждый раз. в чем может быть проблема. Должен ли я опубликовать метод onActivityForResult родительской активности.   -  person Gaurav Gupta    schedule 31.07.2012
comment
@MiteshAgrawal не работает. Работает два или три раза, после чего обновляет свою активность.   -  person Gaurav Gupta    schedule 31.07.2012
comment
Это означает, что через какое-то время ваша деятельность не заканчивается? правильно ??   -  person Daud Arfin    schedule 31.07.2012
comment
да, странно. Когда я нажимаю на список 10 раз, 5 раз он переходит к родительской активности и 5 раз обновляет текущую активность.   -  person Gaurav Gupta    schedule 31.07.2012
comment
очистите активность стека, используя addflag в Intent, может помочь. Вот так mIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);   -  person moDev    schedule 31.07.2012
comment
Вау, спасибо, Митеш Агарвал, у меня это работает. Спасибо за спасение моего дня. :)   -  person Gaurav Gupta    schedule 31.07.2012


Ответы (2)


Вы должны начать свою ParentActivity с

Intent i = new Intent(SignUpActivity.this, UploadImage.class);
startActivityForResult(i, 1);

А затем напишите это в своей ParentActivity

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // TODO Auto-generated method stub
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == 1) {
       //your code
    } else {        
    }       
}

А затем во втором действии напишите это

Intent returnIntent = new Intent();
setResult(RESULT_OK, returnIntent);
finish();
person Nirali    schedule 31.07.2012
comment
Гаурав говорит, что сама деятельность не завершена, ваш курс полезен для того же ?? - person Daud Arfin; 31.07.2012

Я использовал это, чтобы решить мою проблему. Этот код будет в родительской активности.

Intent intent = new Intent(AddEvent.this, AddVenue.class); intent.setFlags(intent.FLAG_ACTIVITY_CLEAR_TOP); startActivityForResult(intent, 222); ((Activity) AddEvent.this).overridePendingTransition(0, 0);

Это ключевая линия для решения этой проблемы.

intent.setFlags(intent.FLAG_ACTIVITY_CLEAR_TOP);
person Gaurav Gupta    schedule 31.07.2012