2014-01-30 2 views
0

Я хочу, чтобы данные синхронизировались между двумя действиями. У меня есть TextView1 внутри 1-го действия и TextView2 внутри 2-го действия. Вторая активность начинается с 1-го. После этого данные в TextView2 будут изменены. Когда я вернусь к 1-му действию, данные в TextView1 должны быть одинаковыми с данными TextView2. Я пытался использовать намерения, но это невозможно, так как 1-я активность разбивается, потому что она ждет данных, я полагаю.Как синхронизировать данные между действиями?

1-активность:

.....

level = getIntent().getExtras().getString("level"); 
score = getIntent().getExtras().getString("score"); 

.....

2-ая активность:

.....

Intent intent = new Intent(2nd_activity.this, 1st_activity.class); 
intent.putExtra("level", Integer.toString(level)); 
intent.putExtra("score", Integer.toString(score)); 

.....

Я думаю, вы поняли, почему это не работает. Что мне нужно для решения этой проблемы?

ответ

1

Вы можете использовать startActivityForResults открыть 2-ю активность, когда вторая деятельность, как предполагается, будет закрыто, то вы звоните:

Intent returnIntent = new Intent(); 
returnIntent.putExtra("tv_text",tv.getText()); 
setResult(RESULT_OK,returnIntent);  

и в деятельности 1, вы получите результаты в onActivityResult и обновление TextView в деятельности 1 с Intent data, образец кода от:

How to manage `startActivityForResult` on Android?

+0

Хорошо, просто сделайте это. –

0

Вы должны проверить, что вызов getIntent() не возвращает нуль, как это происходит при первом запуске 1s t Деятельность

Intent rcvdIntent = getIntent(); 
if (rcvdIntent != null) { 
    level = rcvdIntent.getExtras().getString("level"); 
    score = rcvdIntent.getExtras().getString("score"); 
} 
Смежные вопросы