Articles of 片段

如何在Fragment中获取对LocationManager的引用

我有一个扩展Fragment的类并实现了LocationListener。 当我写作 LocationManager myLocalManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE); 我得到编译时错误,因为方法getSystemService不是Fragment的方法。 我可以做些什么来创建LocationManager ?

如何在Fragment上获取onWindowFocusChanged?

我使用导航抽屉使用Android滑动菜单 。 我知道onWindowFocusChanged在MainActivity上工作。 我怎么检查它是否有片段聚焦? 有人说我可以将hasFocus传递给片段,但我不知道该怎么做。 谁能给我一些示例代码? 我想在我的片段上运行↓这个 @Override public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); if (hasFocus) { //I need to do someing. method(); } }

在android中的片段中设置列表视图适配器

我想要一个自定义行,所以我在xml中使用List View并膨胀成片段。 我对如何为列表View设置适配器感到很困惑。 我创建了一个扩展Base Adapter的新适配器。 在getView方法中,我真的不知道在扩展row.xml布局时要传递什么上下文。 如何为列表视图设置适配器以及在哪里? public class ResultsFragment extends Fragment{ @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.results_layout, container, false); listView = (ListView)v.findViewById(R.id.results); return v; } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); loadPage(dataBean.getWhat(), dataBean.getWhere(), dataBean.getPageStart()); //resultsAdapter.setRssData(rssData); //setListAdapter(resultsAdapter); } @Override public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); Context context […]

调用add()方法时不显示片段

这是声明: FragmentManager fr = getFragmentManager(); FragmentTransaction ft = fr.beginTransaction(); Fragment myFragment = new defaultFragment(); ft.add(R.id.fragment, myFragment); ft.commit(); 这是onClick()方法: public void startFragment(View v){ newFragment = new nextFragment(); execute(); } 执行方法: public void execute() { FragmentTransaction transaction = getFragmentManager().beginTransaction(); transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN); transaction.add(R.id.fragment, newFragment); transaction.addToBackStack(null); transaction.commit(); } 我不能解决问题,但是当我点击触发startFragment(View v)方法的按钮时,没有任何反应,片段不会被我想要在堆栈上添加的片段替换。 我认为问题与此行transaction.add(R.id.fragment, newFragment); 请帮助谢谢:)

什么时候片段的onActivityResult被称为片段生命周期?

当我启动Camera intent时,我注意到onActivityResult在fragment生命周期中的onResume之前被调用。 我还注意到在onStart之后onStart onActivityResult 。 但这是奇怪的部分:我有variablesfileUri ==“一些图像路径”。 这个variables是 onStart中的NOT NULL。 onActivityResult中为NULL 在onResume中再次为NOT NULL 看logCat 12-03 14:39:42.418: D/Fragment1(29220): onStart fileUri: file:///mnt/sdcard/OPS_IMAGES/IMG_20121203_143933.jpg 12-03 14:39:42.463: W/PhoneWindow(29220): Previously focused view reported id 2131034140 during save, but can’t be found during restore. 12-03 14:39:42.463: D/Fragment1(29220): onActivityResult fileUri is NULL!!! 12-03 14:39:42.468: D/Fragment1(29220): onResume fileUri: file:///mnt/sdcard/OPS_IMAGES/IMG_20121203_143933.jpg 最糟糕的是,这只发生在50%的时间。 另外50%的onActivityResult可以毫无问题地访问fileUri值… 我该怎么调试这个? 注意:为简单起见,我没有包含onResume,onStart,onActivityResult方法的代码。 它们只是具有variables检查和日志调用的基本方法。 […]

onWaveInstanceState之后的TabWidget onClick(java.lang.IllegalStateException:在onSaveInstanceState之后无法执行此操作)

我在片段兼容性包示例之后创建了一个片段选项卡小部件,我在onTabChanged更改了片段但是我有一些市场报告在onSaveInstanceState之后发现了IllegalStateException ,这是因为在调用onSaveInstanceState()之后要求提交片段管理器,但怎么能在调用onSaveInstanceState之后我收到了performClick? 堆栈跟踪: java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState at android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1314) at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1325) at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:548) at android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:532) at my.app.NewsTab.onTabChanged(NewsTab.java:144) at android.widget.TabHost.invokeOnTabChangeListener(TabHost.java:378) at android.widget.TabHost.setCurrentTab(TabHost.java:363) at android.widget.TabHost$2.onTabSelectionChanged(TabHost.java:149) at android.widget.TabWidget$TabClickListener.onClick(TabWidget.java:559) at android.view.View.performClick(View.java:3122) at android.view.View$PerformClick.run(View.java:12012) at android.os.Handler.handleCallback(Handler.java:587) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:132) at android.app.ActivityThread.main(ActivityThread.java:4126) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:491) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:844) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602) at dalvik.system.NativeStart.main(Native Method) 看起来这是以某种方式讨论(通过搜索错误),但对我来说,它只是一个副作用,一个支持的错误? 我还阅读了有关honey […]

在android中使用roboguice和片段的任何简单例子?

我在find使用片段+ RoboGuice的工作示例时遇到了问题。 当您尝试使用Android片段事务管理器添加/删除片段时,会发生此问题。 一旦告诉片段inheritance自RoboFragment,事务管理器就不再认为该类是片段(因为它扩展了RoboFragment)。 但是,您可以使用RoboGuice自己的片段管理器,但它也会崩溃。 有没有动态添加/删除RoboGuice片段的例子?

Android force Fragment重建View

我有一个简单的应用程序有两个片段,当处于横向模式时,两个片段并排显示,并在纵向我显示片段A,然后如果他们选择一个选项,启动一个显示片段B的活动。我的问题是当我我处于纵向模式并显示片段B,如果用户选择了一个菜单选项,我想要刷新或重绘与片段B关联的视图,并且无法理解如何使其工作。 我尝试了getView方法和getLayoutInflater方法,但屏幕没有改变,因为我认为我正在创建一个新视图。 我还试图获得对Fragment A的引用,我认为我可以调用它的例程来构建一个新的片段并替换Fragment B但是因为它没有被显示而无法获得它的引用。 我真正需要做的是强制再次调用onCreateView方法来为新视图充气,但我尝试了几种方法来尝试这样做,但无法再次调用onCreateView。 有关如何做到这一点的想法?

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

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

如何在片段中获取Google Maps对象

我在我的应用程序中使用片段,我是新手。 有一个片段,我想要显示谷歌地图,并希望得到它的对象,为此,我有一个XML片段,我想在片段本身膨胀它。 当我试图给地图视图充气时,它会向我显示getSupportFragmentManager()的错误。 如何获取地图对象,那是主要问题。 我的XML是这样的: – 而我想要获取谷歌地图对象的片段是这样的: – public class FindMyCar extends Fragment { private TextView mTvFind; private TextView mTvPark; private EditText mEtParkHint; private GoogleMap map; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.findmycar, null); initViews(view); Typeface type = Typeface.createFromAsset(getActivity().getResources().getAssets(),”Multicolore.otf”); mTvFind.setTypeface(type); […]