Articles of 片段

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

我有三个选项卡,每个选项卡包含三个片段和一个主要活动,我想创建套接字以通过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); […]

片段已经激活 – 尝试setArguments时

我正在使用以下链接中的示例给出 http://android-er.blogspot.in/2013/04/handle-onlistitemclick-of-listfragment.html 这里我有两个类,一个扩展List Fragment和其他扩展Fragment。 现在我以这种方式将对象传递给detailfragment: * 来自ListFragment * @Override public void onListItemClick(ListView l, View v, int position, long id) { Detailfragment detailFragment = (Detailfragment)getFragmentManager().findFragmentById(detailFragmentID); Bundle bundle = new Bundle(); bundle.putSerializable(BUNDLE_KEY, obj);// passing this object detailFragment.setArguments(bundle); detailFragment.setUpLayout();// update the UI } 现在在Fragment类中我收到它,基本目标是根据列表片段中选择的项更新片段的UI,这就是我发送对象的原因 Bundle b = getArguments(); b.getSerializable(BUNDLE_KEY); 现在,在选择的项目上,它显示“片段已经激活”。 这是什么问题? 我究竟做错了什么?

GetFragmentManager.findFragmentByTag()返回null

getFragmentManager().beginTransaction() .replace(R.id.graph_fragment_holder, new GraphFragment(), “GRAPH_FRAGMENT”) .commit(); getFragmentManager().beginTransaction() .replace(R.id.list_fragment_holder, new ListFragment(), “LIST_FRAGMENT”) .commit(); //getFragmentManager().executePendingTransactions(); GraphFragment graphFragment = (GraphFragment) getFragmentManager().findFragmentByTag(“GRAPH_FRAGMENT”); graphFragment.setData(data); ListFragment listFragment = (ListFragment) getFragmentManager().findFragmentByTag(“LIST_FRAGMENT”); listFragment.setData(data); 我提供了一个标签,所以我不确定为什么findFragmentByTag()返回null 。 我在阅读其他问题时尝试过: this.setRetainInstance(true)在两个fragments的oncreate中。 两个fragment构造函数都是空的public fragmentName(){} 。 添加fragments后尝试执行executePendingTransactions 。 尝试在fragments上add而不是replace (已编辑)

为什么popbackstack会调用片段的onCreateView?

试图解释为什么在我弹回堆叠片段时调用onCreateView。 使用以下代码: fragmentManager.popBackStack(“tag1”, 1); ft = fragmentManager.beginTransaction(); ft.remove(fragmentManager.findFragmentByTag(“tag1”)); ft.commit(); logcat的: FATAL EXCEPTION: main java.lang.IndexOutOfBoundsException: Invalid index 79, size is 79 at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255) at java.util.ArrayList.get(ArrayList.java:308) at edu.pacific.pocketrx.FlashCardFrag.onCreateView(FlashCardFrag.java:72) at android.support.v4.app.Fragment.performCreateView(Fragment.java:1500) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:927) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104) at android.support.v4.app.BackStackRecord.popFromBackStack(BackStackRecord.java:764) at android.support.v4.app.FragmentManagerImpl.popBackStackState(FragmentManager.java:1562) at android.support.v4.app.FragmentManagerImpl$3.run(FragmentManager.java:495) at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1467) at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:440) at android.os.Handler.handleCallback(Handler.java:730) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:5103) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:525) […]

contextthemewrapper不能转换为活动

在我的小应用程序中,我有一个PageAdapter-> Fragment-> ListView-> ImageView。 在onImageClick上我希望在另一个片段(Fragment3)中显示我的图像,但是当我在Fragment3中加载图像时会得到一个例外 public class Fragment3 extends DialogFragment { ImageLoader imageLoader; … @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { view = (ViewGroup) inflater.inflate(R.layout.fragment3_layout, container, false); imageView = (ImageView) view.findViewById(R.id.imageViewFrag3); detail = (TextView) view.findViewById(R.id.textViewFrag3); imageUrl = getArguments().getString(“URL”); imageView.setTag(imageUrl); activity=this; imageLoader = new ImageLoader(activity.getActivity().getApplicationContext()); imageLoader.DisplayImage(imageUrl, (Activity) activity.getActivity(), imageView); return view; } … […]

删除后片段仍然存在?

1将两个片段添加到FragmentManager FragmentManager fm = getSupportFragmentManager(); FragmentTransaction ft1 = fm.beginTransaction(); ft1.add(containerId, fragment1, “fragment1”); ft1.addToBackStack(null); ft1.commitAllowingStateLoss(); FragmentTransaction ft2 = fm.beginTransaction(); ft2.add(containerId, fragment2, “fragment2”); ft2.addToBackStack(null); ft2.commitAllowingStateLoss(); 2更改移动设置开发人员选项 – >不要保持活动 – >开启 3重新创建活动后删除所有片段 FragmentTransaction ft3 = fm.beginTransaction(); for(Fragment f : fm.getFragments()) ft3.remove(f); ft3.commitAllowingStateLoss(); 我的问题是为什么删除后fm.findFragmentByTag(“fragment1”)不为null? minSdkVersion 17 targetSdkVersion 22 compileSdkVersion 22

Fragments中的`onViewStateRestored`如何工作?

我真的很困惑片段的内部状态。 如果另一个片段出现,我有一个Activity只能同时保存一个Fragment并替换它。 只有在调用onSaveInstanceState的Activity(在我的情况下不调用)时,才会调用onSaveInstanceState文档。 如果我停止我的片段,我会将自己的状态存储在一个单身人士中(是的,我知道我也讨厌单身人士,但这不是我的想法)。 因此,我必须重新创建整个ViewHirarchy ,创建新视图(使用关键字new ),恢复其状态并在onCreateView返回它们。 我在这个View中也有一个Checkbox,我明确地不想存储它的状态。 然而, FragmentManager想要“智能”并使用我从未创建过的Bundle调用onViewStateRestored ,并“恢复”旧CheckBox的状态并将其应用于我的新CheckBox。 这引发了很多问题: 我可以从onViewStateRestored控制包吗? FragmentManager如何获取(可能是垃圾收集的)CheckBox的状态并将其应用于新的CheckBox? 为什么它只保存Checkbox的状态(不是TextViews ??) 总结一下: onViewStateRestored如何工作? 注意我正在使用Fragmentv4,因此onViewStateRestored不需要API> 17

DialogFragment:NullPointerException(支持库)

我正在使用优秀的ACRA库从我的应用程序接收错误报告。 我收到了很多客户关于DialogFragment中的NPE的报告,但是我无法重现它: java.lang.NullPointerException at android.support.v4.app.DialogFragment.onActivityCreated(SourceFile:366) at android.support.v4.app.FragmentManagerImpl.moveToState(SourceFile:892) at android.support.v4.app.FragmentManagerImpl.moveToState(SourceFile:1083) at android.support.v4.app.FragmentManagerImpl.moveToState(SourceFile:1065) at android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated(SourceFile:1844) at android.support.v4.app.FragmentActivity.onStart(SourceFile:519) at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1133) at android.app.Activity.performStart(Activity.java:4475) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1929) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981) at android.app.ActivityThread.access$600(ActivityThread.java:123) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4424) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) at dalvik.system.NativeStart.main(Native Method) NPE发生在支持库内 (@line 366): 353 @Override 354 public void onActivityCreated(Bundle savedInstanceState) […]

片段示例中的Android ListView

我在哪里可以find在Fragment中使用ListView的示例? 我知道样品中有一个例子,但不幸的是我找不到它。 也许你可以推荐一些东西?