![](/img/trans.png)
[英]Android activity life cycle - what are all these methods for?
[英]During what part of activity life cycle various android annotations are called?
目前,我正在將我的android項目移至android-annotations。 我很難理解注釋的調用順序。 由於順序錯誤,我得到了nullPointerExceptions。
作為一個示例用例,我試圖在Fragment中使用@ViewById。 但是我在onCreateView()和onResume()中得到nullPointerException。
說明活動生命周期中的什么時間,將觸發哪個注釋的文檔將非常有幫助。
以下是我的代碼的一小部分:-
@EFragment
public class DiscoverFragment extends Fragment {
@ViewById(R.id.dishList)
PullToRefreshListView mPullToRefreshView;
@ViewById
LinearLayout noDataAvailable;
@ViewById
LinearLayout dataAvailable;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
Log.d(TAG, "onCreateView");
View v = inflater.inflate(R.layout.fragment_discover, container, false);
if (cursorStringDistance == null) {
mPullToRefreshView.setMode(Mode.PULL_FROM_START);
mPullToRefreshView.setOnRefreshListener(oneRefresher);
} else {
mPullToRefreshView.setMode(Mode.BOTH);
mPullToRefreshView.setOnRefreshListener(bothRefresher);
}
ListView actualListView = mPullToRefreshView.getRefreshableView();
actualListView.setAdapter(mAdapter);
return v;
}
@Override
public void onResume() {
super.onResume();
if (dishListDistance.size() == 0) {
noDataAvailable.setVisibility(View.VISIBLE);
dataAvailable.setVisibility(View.GONE);
} else {
noDataAvailable.setVisibility(View.GONE);
dataAvailable.setVisibility(View.VISIBLE);
}
startTime = System.currentTimeMillis();
}
}
我正在行mPullToRefreshView.setMode(Mode.PULL_FROM_START);
獲得nullPointerException mPullToRefreshView.setMode(Mode.PULL_FROM_START);
和noDataAvailable.setVisibility(View.VISIBLE);
。
您必須添加一個@AfterViews
注釋方法,注入的View
字段將在那里可用。 對於Fragment
AA會在onViewCreated()
方法中注入View
字段。 如果您想了解生命周期,請檢查生成的類。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.