Tag: android fragments

如何处理多片段活动中的onContextItemSelected?

我目前正试图使我的应用程序使用“适用于Android v4的兼容性库”,甚至为Android 1.6用户提供片段使用的好处。 上下文菜单的实现似乎很棘手: 应用程序的主要活动是扩展FragmentActivity类。 这些片段都是基于扩展片段类的一个类。 片段类在其onCreateView()方法中调用registerForContextMenu() ,并覆盖onCreateContextMenu()和onContextItemSelected()方法 。 对于onCreateContextMenu(),这工作得很好。 上下文菜单从资源文件中膨胀,并根据所选项目(基于listView …即使片段不是ListFragment)稍作修改。 select上下文菜单项时会发生此问题。 为所有当前存在的片段调用onContextItemSelected() ,从第一个添加的片段开始。 在我的情况下,片段是用来显示文件夹结构的内容。 当打开子文件夹片段的上下文菜单并select菜单项时, onContextItemSelected()首先在上层调用(取决于此时允许/可见片段的数量)。 现在,我通过活动级别的字段使用一个解决方法,该字段包含调用其onCreateContextMenu()的最后一个片段的标记。 这样,当存储的标签与getTag()不相同时,我可以在onContextItemSelected()的开头调用“return super.onContextItemSelected(item)”。 但是这种方法对我来说看起来有点肮脏。 为什么onContextItemSelected()在所有片段上调用? 而不只是一个调用onCreateContextMenu() ? 什么是最优雅的方式来处理这个?

Android / Android中的getIntent()。getExtras()方法

有了活动,我曾经这样做: 在活动1中: Intent i = new Intent(getApplicationContext(), MyFragmentActivity.class); i.putExtra("name", items.get(arg2)); i.putExtra("category", Category); startActivity(i); 活动2: Item = getIntent().getExtras().getString("name"); 你如何使用碎片来做到这一点? 我也在使用兼容性库v4。 它是否在FragmentActivity? 还是实际的片段? 它进入哪个方法? 的onCreate? onCreateView? 另一个? 我能看到示例代码吗? 编辑:值得注意的是,我试图保持活动1作为一个活动(或实际ListActivity,我通过listitem意图单击时),然后传递给一组tabbed-fragments(通过片段活动),我需要任何标签才能获得额外的。 (我希望这是可能的?)

操作条向上导航与片段

我有一个带有三个选项卡的选项卡式的Actionbar / viewpager布局, 如A , B和C. 在选项卡C选项卡(片段),我添加另一个片段说片段D。 同 DFragment f= new DFragment(); ft.add(android.R.id.content, f, ""); ft.remove(CFragment.this); ft.addToBackStack(null); ft.commit(); 我修改DFragment的onResume中的操作栏添加button: ActionBar ab = getActivity().getActionBar(); ab.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD); ab.setDisplayHomeAsUpEnabled(true); ab.setDisplayShowHomeEnabled(true); 现在在DFragment中,当我按下硬件(手机)“后退”button时,我将selectCFragment返回到原始选项卡式(ABC)布局。 如何使用操作栏向上button来实现此function?

一个活动和所有其他碎片

我正在考虑用Activity和其他managing all the fragments thru the activity Fragments屏幕来实现一个屏幕,并managing all the fragments thru the activity 。 这是一个好主意吗? 我的答案是否定的,但我仍想更清楚地了解这个想法。 这个主意有什么优点和缺点? 注意: 请不要给我片段和活动的链接。 编辑: 这里是关于碎片和活动的东西: 优点: 碎片意味着与活动一起使用作为一项子活动。 碎片不是活动的替代品。 碎片意味着可重用性(需要知道以何种方式实现可重用性)。 片段是编写代码以支持平板电脑和手机的最佳方式。 缺点: 我们需要实现接口来从碎片中获取数据。 对于对话,我们必须走很长的路要展示它。 如果我们不考虑平板电脑,为什么要用碎片呢? 活动和片段之间的起始时间差是多less?

如何从一个片段发送数据到另一个片段?

嗨,我知道有这个问题的答案。 我已经尝试了所有这些,但它不适用于我的应用程序。 我正在开发一个有3个片段活动的应用程序。 第一个片段显示一个网站,第二个片段有listview,第三个片段有另一个listview。 现在我想从第三个片段发送URL到用户点击listitem时的第一个片段。这就是我所做的。 我从这个片段发送stringURL到第一个片段。 list.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapter, View view, int position, long id) { FragmentC fragment = new FragmentC(); final Bundle bundle = new Bundle(); bundle.putString("position", "http://www.facebook.com"); fragment.setArguments(bundle);} }); 这是第一个片段,我需要的url,并希望在web视图中显示。 String url="http://www.hotelsearcher.net/"; Bundle args = getArguments(); if (args != null){ url = args.getString("position"); } WebView webView= (WebView) V.findViewById(R.id.webView1); […]

Android – SupportMapFragment与GoogleMaps API 2.0给IllegalArgumentException

我正在尝试使用为Android提供的最新的Map API 2.0。 我正在使用支持库,因为我想支持Android 2.2。 以下是我的代码: 主要活动类 public class MainActivity extends FragmentActivity { public FragmentManager fManager ; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); fManager = getSupportFragmentManager(); Button showMapButton = (Button) findViewById(R.id.showMapButton); showMapButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { loadMapFragment(); } }); } private void loadMapFragment() { MapPageFragment plotterFragment = new MapPageFragment(); […]

在ViewPager中将一个片段replace为另一个片段

当我尝试用ViewPager另一个Fragmentreplace一个Fragment时,我遇到了一些问题。 现在的情况 我有一个3页的ViewPager ,每一个都是一个Fragment 。 在第一页,我有一个ListView内的ListFragment (“FacturasFragment”)。 当我点击该列表中的一个项目时,我使用onListItemClick方法来处理该事件。 我想要的是 单击列表项目时,我想用另一个Fragment (“DetallesFacturaFragment”,包含发票的详细信息)replaceListFragment (包含发票清单)。 当我在“DetallesFacturaFragment”,然后按返回Button ,应该返回到ListFragment 。 页面之间的滚动不应该改变第一个显示的Fragment 。 这是,如果我在第一页“DetallesFacturaFragment”和滚动到第二页,当返回到第一个应该继续显示“DetallesFacturaFragment”。 码 FragmentActivity public class TabsFacturasActivity extends SherlockFragmentActivity { private MyAdapter mAdapter; private ViewPager mPager; private PageIndicator mIndicator; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.fragment_pager); mAdapter = new MyAdapter(getSupportFragmentManager()); mPager = (ViewPager)findViewById(R.id.pager); mPager.setAdapter(mAdapter); mIndicator = (TitlePageIndicator)findViewById(R.id.indicator); mIndicator.setViewPager(mPager); […]

显示animation从一个点开始增长的对话框片段

当用户点击ListView的一行时,我显示一个DialogFragment 。 我想animation显示的对话框,使其从行的中心增长。 从启动器打开文件夹时可以看到类似的效果。 我有一个想法是TranslateAnimation和ScaleAnimation的组合。 有另一种方法吗?

Android.app片段与android.support.v4.app使用ViewPager?

我有一个关于Android支持库,片段的问题,以及一个ViewPager类的具体例子。 我的目的是创build一个类似于Android开发者网站( http://developer.android.com/training/animation/screen-slide.html或http://developer.android.com/培训/执行导航/ lateral.html )。 看着他们的代码,我注意到他们利用android.support.v4.app库,从我的研究是唯一的方式来访问ViewPager类。 在我的情况下,我没有兴趣向后兼容。 最低的API等级是14(冰淇淋三明治),build立目标是4.2果冻豆。 以最简单的forms,我的应用程序的执行效果与我在Android开发者网站上链接的第二个演示程序完全相同 – 只需在三个标签之间滑动即可。 我读过的所有文章/post/答案似乎都非常支持v4支持库 。 现在对于我来说,尽pipe冗长的问题(S): 什么是最好的方式来构build我的应用程序 – 使用android.support.v4.app ,从而使用SupportFragments,或使用android.app提供的碎片 – 为什么? 如果来自android.app碎片是要走的路,那么处理ViewPagers的最佳方式是什么? 如果SupportFragments最适合这个任务,我估计他们拥有与另一个相同的function – 那么在android.app中有什么目的呢? 希望有一个更清楚的理解,可以给我一点澄清,因为我很惊讶…

getSupportFragmentManager()和getChildFragmentManager()有什么区别?

我的类inheritanceFragment,这就是为什么它不能使用getSupportFragmentManager()。 我正在使用getChildFragmentManager,它显示我错误 – IllegalArguementException:没有发现id …错误的视图。 任何指导将不胜感激。 调用AttachmentsListFragment的代码是 Bundle b = new Bundle(); b.putSerializable("AttachmentsList", msg.attachments); AttachmentListFragment listfrag = new AttachmentListFragment(msg.attachments); FragmentTransaction transaction = getFragmentManager().beginTransaction(); transaction.add(R.id.attachmentslistcontainer, listfrag); transaction.addToBackStack(null); transaction.commit(); attachmentslayout.xml是 <?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/attachmentslistcontainer" android:orientation="vertical" > <TextView android:id="@+id/textViewAttachmentHeader" style="@style/Normal.Header.Toolbar" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@color/list_separator_background" android:ellipsize="end" android:gravity="center" android:maxLines="2" android:text="@string/attachments_header" android:textColor="#FFFFFFFF" android:textSize="22sp" android:textStyle="bold" android:visibility="visible" /> <ListView android:id="@android:id/list" […]