簡體   English   中英

如何在活動之間同步數據?

[英]How to synchronize data between Activities?

我希望兩個活動之間的數據同步。 我在第一個活動中有TextView1,在第二個活動中有TextView2。 從第一個活動開始第二個活動。 之后,更改TextView2中的數據。 當我回到第一個活動時,TextView1中的數據必須與TextView2的數據相同。 我試圖使用意圖,但是不可能,因為第一個Activity崩潰了,因為我想它正在等待數據。

第一項活動:

.....

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

.....

第二項活動:

.....

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

.....

我想您已經弄清楚了為什么它不起作用。 我該怎么做才能解決這個問題?

您可以使用startActivityForResults打開第二個活動,當第二個活動應該關閉時,您可以調用:

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

在活動1中,您將在onActivityResult收到結果,並在活動1中使用Intent data更新textview,示例代碼來自:

如何在Android上管理`startActivityForResult`?

您必須檢查對getIntent()的調用是否不返回null,就像第一次啟動1st Activity一樣。

Intent rcvdIntent = getIntent();
if (rcvdIntent != null) {
   level = rcvdIntent.getExtras().getString("level");
   score = rcvdIntent.getExtras().getString("score");
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM