Articles of android fragments

在Fragment的onActivityCreated()之前调用onStart()的活动

我遇到了一个问题,我的片段的onActivityCreated()方法是在调用我的activity的onStart()方法之后调用的。 这似乎意味着我的活动onCreate()方法在onStart()之后完成? 那不可能是这样的……可以吗? 在我的活动的生命周期中,我的片段的onActivityCreated()被称为? 此外,如果我有多个片段,我如何控制片段的onActivityCreated()调用的顺序? 在我的活动中: @Override protected void onStart() { super.onStart(); methodA(); // this is called … } 在我的片段中: @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); methodB(); // … before this }

Android碎片内存泄漏

我在业余时间制作了一个小应用程序,而且我使用了许多碎片。 我对片段相当新,但是我已经使用了很多资源来适当地使用……或者我认为。 当我从一个片段更改为片段时,随着我的堆继续增长,我得到了内存泄漏。 我以前的应用程序实现了我的应用程序,并且我已经显着减少了内存泄漏。 然而,既然我正在加入片段世界,我觉得好像我从一开始就在记忆中开始。 MainActivity.java public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); // Setting the content view of the Activity setContentView(R.layout.main); // Setting up the actionbar. ActionBar actionbar = getActionBar(); actionbar.setSubtitle(“”); actionbar.setDisplayOptions(ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_SHOW_TITLE | ActionBar.DISPLAY_SHOW_CUSTOM); actionbar.setTitle(“”); actionbar = null; MainMenuFragment frag = new MainMenuFragment(); getSupportFragmentManager().beginTransaction().add(R.id.fragment_container, frag).commit(); } 此MainActivity还设置ActionBar。 MainMenuFragment.java public class MainMenuFragment […]

拉动刷新和加载更多listview像facebook

我在这里使用滑动抽屉。 在单击主页图标上它显示3个选项卡 1)我应该申请哪个概念? 2)我想在facebook视图中应用pulltoreferesh和loadmore吗? 因为你还看到,当向上滚动进度条获取隐藏并请求取消时。

选项卡切换后,TabHost片段中的MapActivity消失

我正在尝试使用片段在一组选项卡中显示地图。 我遇到的问题是,如果用户导航到另一个片段,然后返回,则地图活动会消失。 如何在tabhost中以片段forms显示MapActivity? 其基础是关于如何将MapActivity与片段集成的众多问题(请参阅片段中的MapView(Honeycomb) ) MainTabActivity有一个tabhost,并使用FragmentManager在选项卡中显示Fragments。 MapFragment有一个tabhost,用它来显示MapActivity。 MapFragment确实使用LocalActivityManager将生命周期事件传播到包含的活动。 所以MapFragment: public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.map_fragment, container, false); mTabHost = (TabHost) view.findViewById(android.R.id.tabhost); mTabHost.setup(getLocalActivityManager()); Intent intent = new Intent(getActivity(), MapActivityWrapper.class); // intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);//does nothing TabHost.TabSpec tab = mTabHost.newTabSpec(“map”) .setIndicator(“map”) .setContent(intent); mTabHost.addTab(tab); return view; } MapFragment布局: MainTabActivity中用于更改选项卡内容的代码: private void updateTab(String oldId, String […]

ListFragment和onActivityCreated调用了两次

我有一个listFragment这是我的onActivityCreated: @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); if (savedInstanceState != null) { utenti=savedInstanceState.getParcelableArrayList(“array”); }else{ threadutenti= (GetUtenti) new GetUtenti(this.getActivity(), utenti).execute(); } 当我旋转我的设备时,我有第一个savedInstanceState非null(我得到了)但是在使用onActivityCreated null调用onActivityCreated之后! 为什么? 我想在ListFragment上获取我的对象utenti而不是我的活动..

使用导航模式隐藏actionBar选项卡会对片段后台堆栈产生负面影响

我有一个带有操作栏和操作栏标签的活动。 当我从选项卡的内容中选择一个项目时,我正在尝试用新的替换当前片段,将事务添加到后端堆栈,并隐藏选项卡。 我通过将操作栏导航模式更改为标准来隐藏选项卡。 问题是,当我按下后退按钮时,我只是使用操作栏获得一个空白视图(在标准模式下)..片段事务似乎没有被反转。 如果我不通过将导航模式更改为标准来隐藏选项卡,则事务撤销工作正常。 我已经尝试重写后退按钮将导航模式更改回选项卡,但它不起作用。 有人能告诉我他们将如何实现这一目标吗? 以下是隐藏选项卡并执行片段事务的代码: ActionBar actionBar = getActivity().getActionBar(); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD); Fragment albumListFragment = new AlbumListFragment(); albumListFragment.setArguments(bundle); FragmentTransaction ft = getFragmentManager().beginTransaction(); ft.replace(android.R.id.content, albumListFragment); ft.addToBackStack(null); // Commit the transaction ft.commit(); 为清楚起见:我希望在提交此事务后回退,选项卡将返回到前一个片段的视图。 在按下之后,它没有显示标签或片段。

Android – 如何管理具有不同内容的单个片段的多个实例?

我希望能够设置单个片段的视图的setText和getText。 就像现在一样,当我设置Framgent的TextView的文本时,它会更改所有片段中该视图的文本。 我一直在尝试移动东西,但这是我的代码: 片段类 public class TestFragment extends Fragment{ View view; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { view = inflater.inflate(R.layout.test_fragment, container, false); TextView tv = (TextView) view.findViewById(R.id.huh); //tv.setText(“AAAAAAAAAAAAAAAAAAA”); return view; } public void setText(String asdf) { TextView test = (TextView) view.findViewById(R.id.huh); test.setText(asdf); } } 活动类 public class Manage extends BaseActivity { […]

删除片段崩溃

我添加和删除这样的片段: 加 getSherlockActivity().getSupportFragmentManager() .beginTransaction() .setCustomAnimations(R.anim.slide_in_bottom, R.anim.slide_out_top, R.anim.slide_in_top, R.anim.slide_out_bottom) .add(R.id.fragment_explore, fragment) .addToBackStack(null) .commit(); ActivityMain.BACKSTACK_EXPLORE.add(fragment); 去掉 Fragment depopFragment = BACKSTACK_EXPLORE.get(BACKSTACK_EXPLORE.size() – 1); getSupportFragmentManager().beginTransaction() .setCustomAnimations(R.anim.slide_in_top, R.anim.slide_out_bottom, R.anim.slide_in_bottom, R.anim.slide_out_top) .remove(depopFragment) .commit(); BACKSTACK_EXPLORE.remove(depopFragment); 有一个快速幻灯片animation。 片段来自底部并返回底部。 我的问题是,当您按下后退按钮(删除片段)时,在animation完成之前,您将触摸显示在后面的活动。 它给了我一个简单的致命信号11错误(更常见于三星galaxy s3) 任何想法 ?

如何从Unity Player返回到之前运行的Android Activity?

我有与本主题中提到的相同的问题将Unity与Eclipse集成:后退按钮单击但建议的解决方案不起作用。 我有一个嵌入在原生Android应用程序中的Unity Player。 我可以毫无问题地启动Unity Player,但现在我想使用后退按钮返回到我之前的活动。 我已经从Unity端尝试了Application.Quit,从android端尝试了finish(),两者都关闭了整个应用程序。 我也尝试从Unity上下文启动一个新的Activity,但这也不起作用,我想这是因为我使用片段。 我的活动设置如下: MainActivity嵌入了几个片段。 其中两个包含列表,我可以从中创建一个新的Activity,它显示了List元素的详细视图。 详细视图也是片段,您可以在其中向左和向右滑动到上一个/下一个元素(类似于gmail应用程序)。 在详细信息视图中,您可以启动Unity以使用qualcomm vuforia框架进行一些扩充。 到目前为止一切正常,但我无法从UnityPlayer返回到详细信息视图。 有谁知道如何实现这一目标? 谢谢!

当您已有标签和菜单时,在顶部的操作栏中添加“添加按钮”

我正在尝试在操作栏的顶部添加“添加项目”按钮。 (在应用程序图标和标题的右侧)。 在操作栏下方,我有两个可以在其间滑动的标签。 我还为设置菜单定义了一个菜单XML文件。 我认为actionbar也使用菜单XML。 所以我添加了一个操作栏菜单XML,但是当我使用时 actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_SHOW_TITLE | ActionBar.DISPLAY_SHOW_CUSTOM); actionbar.setCustomView(R.menu.actionbar); 我的程序崩溃了。 我相信我做错了。 我的操作栏XML: 我读了一些教程,我应该将项添加到操作栏并通过mainActivity中的OnCreateOptionsMenu函数填充它。 但这是我的选项菜单填充的地方,而不是我的操作栏。