[英]update main activity ui from a callback in login activity
我在主要活動A
和登錄活動B
都有一個導航抽屜。 活動B
有一個OnLogin callback
在其中我從主要活動可以訪問的單例更新全局userinfo。 請注意,此OnLogin callback
在線程中調用。
現在,我要更新主要活動導航抽屜標題ui(例如,用戶名和用戶圖標)。 我在主要活動A
使用startActivityForResult
從登錄活動B
獲取標志,以指示發生了某些更改,然后在OnActivityResult
更新UI。
我現在面臨的問題是,當活動B
完成(通過觸發OnBackPressed
在活動B
),則OnLogin
回調並不需要被調用。 結果, onActivityResult
不必提取UserInfo
所做的更改。 我的問題是,在這種情況下更新UI的正確方法是什么?
我最終在做什么
UserInfo.java
class UserInfo extends Observable {
private String value_;
public void setValue(String value)
{
value_ = value;
setChanged();
}
}
MainActivity.java
MainActivity extends AppCompatActivity implements Observer {
public void onCreate(Bundle savedInstanceState)
{
// other onCreate stuff
Singleton.getInstance().getUserInfo().addObserver(this);
// UserInfo initialization
...
// UI initialization
Singleton.getInstance().getUserInfo().notifyObservers();
}
public void update(Observable observable, Object data)
{
if (observable instanceof UserInfo)
{
//update ui
}
}
}
LoginActivity.java
OnLogin(String value)
{
UserInfo userInfo = Singleton.getInstance().getUserInfo();
userInfo.setValue(value);
userInfo.notifyObserver();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.