Articles of android fragments

在Android上构建兼容性PreferenceFragment

我的android应用程序使用兼容性库(特别是Loaders )。 我需要能够在任何地方使用兼容性组件,包括我的PreferenceActivity 。 遗憾的是,支持库不包含基于片段的PreferenceActivity ,也不包括PreferenceFragment类。 我想要创建自己的PreferenceFragmentActivity和CompatPreferenceFragment(基本上是谷歌忽略的)。 其他人,包括StackOverflow上的一些人,已经提到完成这个确切的事情,所以我公开寻求任何forms的帮助 – 指导,提示,建议,代码示例(如果您愿意并且能够分享),或者您认为的任何其他内容与这个问题有关。 如果有人也可以将我引导到人们提交Androidfunction请求的网站,我想将我的名字添加到希望Google在支持库的未来版本中解决此问题的人员列表中。

Android导航抽屉碎片状态

我目前正在为我的Android APP使用导航抽屉。 在我的第一个片段中,我有一个使用Facebook的Graph API加载数据的片段。 因此,当我的App首次加载时,它首先转到第一个片段。 然后,我使用导航抽屉点击另一个片段并查看它。 最后,我重复使用导航抽屉返回第一个片段并查看它。 我面临的问题是,如何选择导航抽屉项目,如何继续使用已创建的片段,而不是重新创建片段。 我切换片段的代码如下所示。 private void displayView(int position) { // update the main content by replacing fragments Fragment fragment = null; switch (position) { case 0: fragment = new SelectionFragment(); break; case 1: fragment = new HomeFragment(); break; case 2: fragment = new PhotosFragment(); break; case 3: fragment = new […]

片段和活动之间的核心区别是什么? 哪些代码可以用片段写?

我有三个选项卡,每个选项卡包含三个片段和一个主要活动,我想创建套接字以通过wifi网络发送消息,那么我应该在哪里编写代码呢? 在那个特定的片段类或主要活动?

如何更改底部导航按钮上的活动点击?

我想在我现有的Android应用程序中使用底部导航栏,但问题是所有屏幕都是活动,是否可以加载活动而不隐藏底部导航栏。 示例: activity_main.xml 这是我的基础活动, MainActivity.java public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); BottomBar bottomBar; bottomBar = (BottomBar) findViewById(R.id.bottomBar); bottomBar.setOnTabSelectListener(new OnTabSelectListener() { @Override public void onTabSelected(@IdRes int tabId) { if (tabId == R.id.matching) { Log.i(“matching”,”matching inside “+tabId); Intent in=new Intent(getBaseContext(),Main2Activity.class); startActivity(in); }else if (tabId == R.id.watchlist) { Log.i(“matching”,”watchlist inside […]

PreferenceFragment中的上下文

取自http://developer.android.com/guide/topics/ui/settings.html : 注意:PreferenceFragment没有自己的Context对象。 如果需要Context对象,可以调用getActivity()。 但是,只有在片段附加到活动时才要小心调用getActivity()。 当片段尚未附加,或在其生命周期结束时被分离时,getActivity()将返回null。 如果我从PreferenceFragment的OnCreate()方法中调用getActivity(),那么我可以确定该片段是附加到它的活动 – 还是有其他方法你应该在这个实例中获取Context? 我需要Context的原因是我正在尝试使用PreferenceFragment中的Toast通知

将服务绑定到活动或片段?

我正在制作一个音乐播放器应用程序。 我有一个主要的活动,有多个片段,每个片段在设备专辑上明智地显示歌曲,艺术家明智等。 我有一个音乐服务,处理所有的播放和其他东西。 我感到困惑的是这项服务与我拥有的各种片段的绑定。 现在我将主要活动和每个片段分别与服务绑定,并且它的工作非常好。 但我想知道这是否真的是最好的做法? 有没有办法将主活动与服务绑定,然后一些如何在其子片段中使用它? 我可能错过了一些非常基本的活动概念或片段或服务。 所以有人请在这方面指导我。 我想这更像是一个概念性问题,因此不需要任何代码。 但如果需要,请告诉我。 编辑: 我的问题是:将服务绑定到具有多个子片段(每个片段将使用该服务)的活动的更好方法是什么?

在哪种情况下我们想添加没有容器的片段?

Fragment事务有方法add(Fragment fragment,String tag) ,它不会将片段放到容器中,所以它不能有视图。 它可以用什么?

从片段调用片段

我有一个带有按钮的活动,当点击时我用片段上的另一个按钮调用片段。 但是当点击片段的按钮时,我无法调用第二个片段。 这是我的来源,非常简单:activity_main.xml: fragment1.xml fragment2.xml MainActivity.java public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.activity_main, menu); return true; } public void onClick(View v) { Fragment1 fragment1 = […]

“无法find类’android.support.v4.app.FragmentActivity’”错误

我收到以下错误: > 02-06 23:10:24.104: E/dalvikvm(912): Could not find class > ‘android.support.v4.app.FragmentActivity’, referenced from method > com.robotium.solo.Waiter.getSupportFragment 当我运行一个项目时,我正在使用Coursera上的Android手持系统的移动应用程序编程。我认为这个错误与我的输出答案被认为是不正确有关。 如果我可以修复此错误,我可以修复输出。 我最初运行测试时没有最新版本的Android Support Repository(未安装),但我现在根据SDK Manager(v4)获得了最新版本的Android Support Repository,甚至重新启动了Eclipse和模拟器,但我仍然得到错误。 如何修复LogCat声称ASR根据SDK安装时不存在?

不要剪辑ViewPager页面

我不能让我的ViewPager不剪切其页面内容。 我目前正在我的应用程序中使用带有FragmentStatePagerAdapter ViewPager 。 我有3页,每页都显示不同的片段。 一切正常,但现在我希望能够在我的页面边界之外绘制,如下图所示: 我在我的所有视图中将clipChildren和clipToPadding设置为false ,以及需要在其边界之外绘制的视图,但这是我得到的:我的视图根据页面边界被剪切。 一些额外的信息:为了解决这个问题,我使用了hierarchyviewer来检查我的视图层次结构,看看是否有一些“幕后”视图可能有剪切行为。 和bingo:我的每个片段的根视图都添加在NoSaveStateFrameLayout 。 我怀疑这个家伙要夹住孩子…… 你认为我的最后一个假设是否正确? 如何获取未剪辑的页面?