2013-05-27 3 views
0

У меня возникла проблема, описанная здесь. У меня есть Class A, ClassB. У обоих есть Intent s для перехода на Class C. Теперь, я хочу знать, с какого class я перешел на Class C, так что я перейду к предыдущему экрану либо A or B. Вызов finish() в Class C не помогает мне, потому что мне нужно обновить данные в Class A и классе B по-разному. Может кто-нибудь, пожалуйста, помогите мне. Как использовать намерение здесь? Могу ли я узнать, из какого класса я должен перейти на Class C?Android - Переход к предыдущему экрану

ответ

1

в ваших намерениях в классе А и В, поставить параметр как логический «isclassA» и сделать тесты на нем, чтобы знать. в намерению Classe A:

intent.putExtra("isfromclassA",true); 

в намерению класса B:

intent.putExtra("isfromclassA",false); 

для этого в вашем классе C:

boolean isfromclassA = intent.getBoolExtra("isfromclassA"); 
+0

Это просто ... Я сделал то же самое way u предложил ... Спасибо –

2

вы должны использовать startActivityForResult и переопределить обратный вызов onActivityResult. Таким образом, вы можете безопасно обновлять свои данные, не зная, из какой активности вы пришли.

public class A extends Activity { 
private final static int REQUEST_CODE= 1000; 
public void onCreate(BUndle b) { 
... 
Intent intent = new Intent(this, C.class); 
startActivityForResult(intent, REQUEST_CODE); 
} 

@override 
void onActivityResult(int requestCode, int resultCode, Intent data) { 
     // here through data you will receive new data 
} 

} 

public class C extends Activity { 
    public void onCreate(BUndle b) { 
    // modify same data 
    Intent intent = new Intent(); 

    // pute data inside intent 
    setResult(Activity.RESULT_OK, intent); 
    finish(); 
} 
} 
+0

Может у пожалуйста помочь мне с образцом? –

+0

@ Aʌɐpɥɐuı: Посмотрите на 'http: // stackoverflow.com/ questions/10407159/android-how-to-manage-start-activity-for-result' –

Смежные вопросы