这是代码:
public class Fragment1Nasdaq extends Fragment implements LoaderCallbacks<Cursor> {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.nasdaq_fragment, container, false);
handleIntent(getActivity().getIntent());
return rootView;
}
}
错误:
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
setIntent(intent);
handleIntent(intent);
}
private void doSearch(String query){
...................
getSupportLoaderManager().restartLoader(0, data, this);
}
我有错误: onNewIntent(intent)是为Fragment
类型定义的为Fragment
类型定义了setIntent(intent)为片段
类型定义了getSupportLoaderManager()我该如何解决?我不知道如何解决它?
答案 0 :(得分:1)
看起来你把这个方法放在了错误的类中。
如果您需要覆盖onNewIntent()
,例如singleTop
个活动,则必须将此代码放在Activity
课程中,而不是Fragment
内。片段没有onNewIntent()
,所以无论它的实现如何,你放在那里的方法都不会被调用。
简而言之,请移动:
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
setIntent(intent);
handleIntent(intent);
}
进入您的活动。在覆盖方法时始终放置@Override
注释,它将帮助您检测不正确的覆盖(例如此异常覆盖)。
答案 1 :(得分:0)
您无法在片段中调用super.onNewIntent(intent);
和getSupportLoaderManager().restartLoader(0, data, this);
,从而产生该错误。如果您想设置意图,则可以通过获取onCreate
并设置其activity
在Intent
中调用它。
<强>样品:强>
getActivity().setIntent(newIntent);