在android中的片段中多次调用onCreate
我的活动中有一个ListView。单击列表项会调用另一个活动。在该活动中,我实现了ViewPager和片段 当它第一次加载onResume()时,onCreate()和onCreateView()方法调用两次,如果我单击第一个列表项。(即,它加载第一个和第二个碎片视图) 当我单击除first之外的任何其他列表片段时,它会调用onResume()、onCreate()和onCreateView()方法三次(即加载previous和after并单击view) 这是绝对好,但我有谷歌分析代码,我必须跟踪只有当前页面,所以我可以把这个代码加载到只有当前页面 我的问题是我的googleAnalytics代码第一次跟踪了三到两页,即使用户没有浏览这些页面,如何避免这种情况在android中的片段中多次调用onCreate,android,Android,我的活动中有一个ListView。单击列表项会调用另一个活动。在该活动中,我实现了ViewPager和片段 当它第一次加载onResume()时,onCreate()和onCreateView()方法调用两次,如果我单击第一个列表项。(即,它加载第一个和第二个碎片视图) 当我单击除first之外的任何其他列表片段时,它会调用onResume()、onCreate()和onCreateView()方法三次(即加载previous和after并单击view) 这是绝对好,但我有谷歌分析代码,我必须跟
My code is as below for fragment
public class MainListActivity extends Activity{
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.v(TAG, "onCreate()");
CustomFragmentPagerAdapter adapter = new CustomFragmentPagerAdapter();
viewPager.setAdapter(adapter);
}
}
//code for fragment adapter
public class CustomFragmentPagerAdapter extends FragmentPagerAdapter {
public CustomFragmentPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int pos) {
CustomFragment customFragment = new CustomFragment();
arrayList.add(customFragment);
return customFragment;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return arrayList.size();
}
}
//code for fragment
public class CustomFragment extends Fragment{
public CustomFragment() {
super();
}
@Override
public void onResume() {
super.onResume();
Log.v(TAG, "onCreate -Resume");
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.v(TAG, "onCreate");
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
Log.v(TAG, "onCreateView");
return myAnyView;
}
}
问题是对所有片段调用onResume()方法,包括不可见的片段。 请在此处查看gorn的答案: 你必须重写
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser) {
// Your logic
}
请用一些标点符号改写你的问题。我已经编辑了我的问题