Questions tagged «android-fragments»

片段代表Android应用程序中可重用的行为或部分用户界面。

4
片段真的需要一个空的构造函数吗?
我有一个Fragment带有多个参数的构造函数。我的应用在开发过程中运行良好,但是在生产环境中,我的用户有时会看到此崩溃: android.support.v4.app.Fragment$InstantiationException: Unable to instantiate fragment make sure class name exists, is public, and has an empty constructor that is public 我可以按照此错误消息的建议制作一个空的构造函数,但是对我来说这没有意义,因为那样的话我就必须调用一个单独的方法来完成的设置Fragment。 我很好奇为什么这次崩溃只是偶尔发生。也许我使用ViewPager不正确?我Fragment自己实例化了所有s并将它们保存在列表中Activity。我不使用FragmentManager事务,因为ViewPager我所看到的示例并不需要事务,并且在开发过程中一切似乎都可以正常工作。


14
使用碎片清理回栈
我将Android应用程序移植到蜂窝上,为了使用片段,我做了很大的重构。在以前的版本中,当我按下“主页”按钮时,我曾经做过一个操作ACTIVITY_CLEAR_TOP,以重置后退堆栈。 现在我的应用只是一个带有多个片段的Activity,因此当我按下Home按钮时,我只是替换其中的一个片段。如何不用startActivity与ACTIVITY_CLEAR_TOP标志一起使用而清除我的后排堆栈?


7
如何使用程序创建的内容视图向活动添加片段
我想向以编程方式实现其布局的Activity添加一个Fragment。我查看了Fragment文档,但是没有很多示例描述我需要的东西。这是我尝试编写的代码类型: public class DebugExampleTwo extends Activity { private ExampleTwoFragment mFragment; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); FrameLayout frame = new FrameLayout(this); if (savedInstanceState == null) { mFragment = new ExampleTwoFragment(); FragmentTransaction ft = getFragmentManager().beginTransaction(); ft.add(frame.getId(), mFragment).commit(); } setContentView(frame); } } ... public class ExampleTwoFragment extends Fragment { @Override public …

12
从DialogFragment接收结果
我正在使用DialogFragments做很多事情:从列表中选择项目,输入文本。 将值(即列表中的字符串或项目)返回到调用活动/片段的最佳方法是什么? 目前,我正在实现调用活动的实现DismissListener,并为DialogFragment提供了对该活动的引用。然后,对话框将调用OnDimiss活动中的方法,活动将从DialogFragment对象获取结果。非常混乱,由于DialogFragment丢失了对活动的引用,因此无法进行配置更改(方向更改)。 谢谢你的帮助。


11
以编程方式返回到后堆栈中的上一个片段
假设我有一个活动,其中包含以编程方式添加的片段: private void animateToFragment(Fragment newFragment, String tag) { FragmentTransaction ft = getFragmentManager().beginTransaction(); ft.replace(R.id.fragment_container, newFragment, tag); ft.addToBackStack(null); ft.commit(); } 返回到可见的先前片段的最佳方法是什么? 我发现在Android中单击按钮时具有触发器后退按钮功能,但我认为模拟后退键事件不是正确的解决方法(而且我也无法使其正常工作): dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_BACK)); 调用finish()只会关闭我不感兴趣的活动。 有更好的方法来解决这个问题吗?

30
在viewpager中获取当前的Fragment实例
以下是我的代码,3 Fragment classes每个代码都嵌入了的3个选项卡ViewPager。我有一个菜单选项。如所示onOptionsItemSelected(),通过选择一个选项,我需要更新当前可见的片段。要进行更新,我必须调用片段类中的方法。有人可以建议如何调用该方法吗? public class MainActivity extends ActionBarActivity { ViewPager ViewPager; TabsAdapter TabsAdapter; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ViewPager = new ViewPager(this); ViewPager.setId(R.id.pager); setContentView(ViewPager); final ActionBar bar = getSupportActionBar(); bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); //Attaching the Tabs to the fragment classes and setting the tab title. TabsAdapter = new TabsAdapter(this, ViewPager); TabsAdapter.addTab(bar.newTab().setText("FragmentClass1"), …

8
安卓 片段getActivity()有时会返回null
在开发人员控制台错误报告中,有时我会看到NPE问题的报告。我不明白我的代码有什么问题。在模拟器和我的设备上,应用程序无需强制关闭即可正常运行,但是,某些用户在调用getActivity()方法时会在片段类中获得NullPointerException。 活动 pulic class MyActivity extends FragmentActivity{ private ViewPager pager; private TitlePageIndicator indicator; private TabsAdapter adapter; @Override public void onCreate(Bundle savedInstanceState) { pager = (ViewPager) findViewById(R.id.pager); indicator = (TitlePageIndicator) findViewById(R.id.indicator); adapter = new TabsAdapter(getSupportFragmentManager(), false); adapter.addFragment(new FirstFragment()); adapter.addFragment(new SecondFragment()); indicator.notifyDataSetChanged(); adapter.notifyDataSetChanged(); // push first task FirstTask firstTask = new FirstTask(MyActivity.this); …


18
片段onResume()和onPause()在后台程序中未调用
我在一个活动中有多个片段。在一个按钮上,单击“我正在开始一个新片段”,将其添加到Backstack中。我自然希望可以调用onPause()当前Fragment和onResume()new Fragment 的方法。好吧,这没有发生。 LoginFragment.java public class LoginFragment extends Fragment{ @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { final View view = inflater.inflate(R.layout.login_fragment, container, false); final FragmentManager mFragmentmanager = getFragmentManager(); Button btnHome = (Button)view.findViewById(R.id.home_btn); btnHome.setOnClickListener(new View.OnClickListener() { public void onClick(View view){ HomeFragment fragment = new HomeFragment(); FragmentTransaction ft2 = …

6
如何使用不同的片段/布局实现ViewPager
当我启动实现viewpager的活动时,viewpager会创建各种片段。我想为每个片段使用不同的布局,但是问题是viewpager最多只显示两个布局(1之后所有其余片段的第二个布局)。 这是SwipeActivity的代码,该代码实现了viewpager: public class SwipeActivity extends FragmentActivity { MyPageAdapter pageAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_swipe); pageAdapter = new MyPageAdapter(getSupportFragmentManager()); ViewPager pager=(ViewPager)findViewById(R.id.pager); pager.setAdapter(pageAdapter); ActionBar bar = getActionBar(); bar.setDisplayHomeAsUpEnabled(true); } /** * Custom Page adapter */ private class MyPageAdapter extends FragmentPagerAdapter { public MyPageAdapter(FragmentManager fm) { super(fm); } @Override …

14
getActivity()在Fragment函数中返回null
我有一个带有这样的公共方法的片段(F1) public void asd() { if (getActivity() == null) { Log.d("yes","it is null"); } } 是的,当我从“活动”中调用它时,它为null ... FragmentTransaction transaction1 = getSupportFragmentManager().beginTransaction(); F1 f1 = new F1(); transaction1.replace(R.id.upperPart, f1); transaction1.commit(); f1.asd(); 一定是我做错了什么,但我不知道那是什么

5
有多少活动与片段?
介绍: 基本的“片段教程”模式如下所示: 在平板电脑上,左侧有一个列表,右侧有详细信息。 两者都是 Fragments并且都居住在同一个Activity。 在电话上,将一个清单Fragment合二为一Activity。 启动Activity包含详细信息的新文件Fragment。 (例如Dianne Hackborn的Android 3.0 Fragments API和Fragments API Guide) 在这两个设备,功能是在Fragments。(简单) 在平板电脑上,整个应用程序是1Activity,在手机上,有很多Activities。 问题: 是否有理由将手机应用拆分为多个Activities? 这种方法的一个问题是,您在Tablet主面板和单独的Phone中复制了很多逻辑。ActivityActivities 在两种情况下使用相同的切入和切Fragments出逻辑(只是使用不同的布局)来保留1 Activity模型会不会更容易? 这样,大多数逻辑都驻留在Fragments自身中,并且只有一个Activity-较少的代码重复。 我还了解到的ActionBarSherlock是,它似乎最适合Fragments而不是Activities(但我还没有使用它)。 教程是否过于简化,还是我错过了这种方法的主要知识? 我们已经在办公室成功地尝试了这两种方法-但我将要开始一个更大的项目,并希望尽可能简化自己的工作。 一些与相关问题有关的链接: 困境:何时使用片段与活动: 何时使用活动过渡与动态片段的模式 Android-我需要对片段与活动和视图进行一些说明 Android中的活动或片段? 多个片段和活动交互设计 那么,Android 3.0中的Fragments的确切优势是什么? 更新 开始悬赏的问题-仍然不确定为什么我需要在平板电脑活动和每个电话活动中重复应用逻辑。 还发现Square的家伙们写了一篇有趣的文章,非常值得一读: 倡导Android片段

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.