Articles of android fragments

obj Fragment错误的第二个参数typesfind’Android.support.V4.app.Fragment。’ 需要’Android.app.Fragment’

我无法理解为什么我的objFragment给了我支持经理的问题,我收到了这个错误: Error:(101, 17) error: no suitable method found for replace(int,android.support.v4.app.Fragment) method FragmentTransaction.replace(int,android.app.Fragment,String) is not applicable (actual and formal argument lists differ in length) method FragmentTransaction.replace(int,android.app.Fragment) is not applicable (actual argument android.support.v4.app.Fragment cannot be converted to android.app.Fragment by method invocation conversion) 它就是在这行上的objFragment上发生的: .replace(R.id.container, objFragment) 这是我的完整代码: import android.app.ActionBar; import android.app.Activity; import android.app.FragmentManager; import android.os.Bundle; import android.support.v4.app.FragmentActivity; import […]

膨胀类片段出错 – 重复id / illegalargumentexception?

我正在尝试创建一个我正在构建的应用程序从主要活动中获取搜索词,返回结果,然后使结果可以被点击,以便可以从每个结果中查看详细信息。 我这样做是通过使用MainActivity,ResultsActivity和PlaceActivity,然后是ListFragmentClickable(扩展ListFragment)。 如果手机朝向纵向模式,则结果列表应该是可见的,只有在单击结果时才会查看详细信息。 如果手机是横向的,则在选择项目时,应在列表右侧popup详细信息窗口。 在运行时,我收到一个错误,上面写着“错误膨胀类片段”。 我不知道是什么导致它,我很乐意帮助摆脱它。 我的ListFragmentClickables由我的ResultsActivity调用,它位于: public class ResultsActivity extends FragmentActivity implements ListFragmentClickable.OnItemSelectedListener{ private ArrayAdapter mAdapter; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_results_view); //Receive searchTerm from MainActivity Intent intent = getIntent(); String searchTerm = intent.getStringExtra(MainActivity.SEARCH_TERM); mAdapter = new ArrayAdapter(this, R.layout.item_label_list); FragmentManager fm = getSupportFragmentManager(); FragmentTransaction ft = fm.beginTransaction(); FactualResponderFragment responder = (FactualResponderFragment) fm.findFragmentByTag(“RESTResponder”); […]

IllegalStateException:无法更改Fragment的容器ID

Android平台:3.1 我试图将一个片段从容器A移动到容器B.下面是完成此操作的代码: private void reattach(int newContainerId, Fragment frag, String tag) { if (frag == null || !frag.isAdded() || (frag.getId() == newContainerId)) { return; } final FragmentManager fm = getFragmentManager(); FragmentTransaction ft = fm.beginTransaction(); ft.remove(frag); //stacco il frammento dal container A ft.commit(); fm.executePendingTransactions(); ft = fm.beginTransaction(); ft.add(newContainerId, frag, tag); //attacco il frammento sul container D ft.commit(); […]

通过片段中的Intent启动片段

我想发布一个新片段来查看一些数据。 目前,我有一个主要活动,其中包含一堆操作栏选项卡,每个选项卡都是一个片段。 所以,在一个标签片段中,我有一个按钮,chartButton。 我的onclicklistener都设置了它,这是onClick方法: public OnClickListener chartsListener = new OnClickListener() { @Override public void onClick(View v) { Intent chartFragment = new Intent(); startActivity(chartFragment); } }; 现在,正如我所说,这个监听器属于扩展Fragment的类。 所以,我想通过意图更换整个屏幕来启动一个新的片段(chartsFragment)。 当用户点击回来时,它会将它们带回标签和主要活动。 这是我的图表片段: public class chartsFragment extends Fragment { public View onCreateView() { //LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState LayoutInflater inflater = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE); return (inflater.inflate(R.layout.chartfragment, null)); } } […]

Android:Fragments:setContentView替代方案

我正在尝试使用fragments重写现有项目以在平板电脑上移植我的应用程序。 我正在用fragments替换活动。 问题是我不知道setContentView方法的等价物是什么? 有没有办法创建Fragment’s视图,除了重写onCreateView ?

不兼容的types:HomeFragment无法在Android中转换为Fragment

我在这段代码中遇到错误: private void displayView(int position) { // update the main content by replacing fragments Fragment fragment = null; switch (position) { case 0: fragment = new HomeFragment(); break; case 1: fragment =new FindPeopleFragment(); break; case 2: fragment = new PhotosFragment(); break; case 3: fragment = new CommunityFragment(); break; case 4: fragment = new PagesFragment(); break; […]

获取片段的容器视图ID

我添加了一个片段 transaction.add(R.id.content, fragment, null); 我需要从这个开始新的片段。 但要做到这一点,我需要知道第一个片段的容器视图ID(在我的例子中是R.id.content)。 我怎么能得到这个? 我可以直接使用这个id,但我想片段不应该知道关于父活动的这种细节。 例如,在这种情况下,不可能在另一个活动中使用此片段。 可能是从另一个“起始”片段是一个坏习惯,所有片段处理逻辑应该由活动本身处理? 但是创建好的片段序列相互启动似乎非常有用(例如detalView-> moreDetailView-> evenMoreDetailView)。

“在onSaveInstanceState之后无法执行此操作” – 为什么我从我的activity的onResume方法中获取此exception?

我的活动使用ACTION_IMAGE_CAPTURE意图调用相机。 如果相机活动成功返回,我在onActivityResult回调中设置了一个标志,并根据标志的值我在onResume中启动一个片段,为捕获的图像添加标题。 这似乎工作正常。 我只是从“狂野”中得到一个堆栈跟踪抱怨我在调用onSaveInstanceState后尝试提交片段事务。 但我正在使用onResume方法进行提交! 为什么android会抱怨这个? 我的AndroidManifest.xml中设置了android:configChanges =“orientation | keyboardHidden | keyboard | screenSize” ,因此方向更改不应触发此…. 这发生在运行4.0.4的三星Galaxy S3(SGH-i747)上 这是堆栈: 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 com.Familiar.Android.FamiliarAppV1.AddPhotosActivity2.performFragmentTransition(AddPhotosActivity2.java:278) at com.Familiar.Android.FamiliarAppV1.AddPhotosActivity2.switchToCaptionsFragment(AddPhotosActivity2.java:438) at com.Familiar.Android.FamiliarAppV1.AddPhotosActivity2.onResume(AddPhotosActivity2.java:167) at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1158) at android.app.Activity.performResume(Activity.java:4544) at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2448) at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2486) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1187) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at […]

当Project Build使用New API Level 21时,Android Project Fragment Transition抛出exception

例外情况是: “无法解析L android / support / v4 / app / FragmentTransitionCompat21 $ 1的超类;” 我正在尝试使用以下函数从片段管理器的片段返回堆栈中popup最后一个片段转换: getSupportFragmentManager().popBackStack(); , 当我这样做时,函数调用抛出错误。 只有当我使用New Android API Version 21作为Build目标时才会发生这种情况。 相同的代码适用于旧版API 20。 错误:找不到’android.support.v4.app.FragmentTransitionCompat21 $ 1’的超类 它似乎是’FragmentTransitionCompat21’基类中的内部类。 错误: W/dalvikvm(1356): Unable to resolve superclass of Landroid/support/v4/app/FragmentTransitionCompat21$1; (1082) W/dalvikvm(1356): Link of class ‘Landroid/support/v4/app/FragmentTransitionCompat21$1;’ failed E/dalvikvm(1356): Could not find class ‘android.support.v4.app.FragmentTransitionCompat21$1’, referenced from method android.support.v4.app.FragmentTransitionCompat21.setEpicenter W/dalvikvm(1356): VFY: […]

如何从活动中更改片段的textView文本

我找不到如何从Activity更改片段的textview 。 我有4个文件: MainActivity.java activity_main.xml FragmentClass.java frag_class.xml frag_class.xml有textView,我想从MainActivity.java更改文本。 FragmentClass扩展了Fragment,这个片段显示在MainActivity FragmentClass中: public void changeText(String text){ TextView t = (TextView) this.getView().findViewById(R.id.tView); t.setText(text); } 在MainActivity中我尝试了这个: FragmentClass fc = new FragmentClass(); fc.changeText(“some text”); 但遗憾的是,这段代码在fc.changeText(“some text”);给了我NullPointerException fc.changeText(“some text”); 我还尝试直接从MainActivity更改文本: TextView t = (TextView) this.getView().findViewById(R.id.tView); t.setText(text); 哪个失败了。 [编辑]完整的代码在这里