Articles of android fragments

没有调用ArrayAdapter的getView()方法

我是android开发的新手。 我正在尝试构建一个带有标签的应用程序(通过片段添加)。 在其中一个片段中,我试图显示一个列表。 这个列表已经使用ListAdapter填充,我已经从ArrayAdapter扩展了,我已经重载了getView()方法。 这是我的片段 public class tabcontentActivity extends Fragment { public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { if (container == null) { return null; } View v = (LinearLayout) inflater.inflate(R.layout.tablayout, container, false); ListView lv = (ListView) v.findViewById(R.id.listview1); ListViewAdapter adapter = new ListViewAdapter(container.getContext(), android.R.layout.simple_list_item_1, R.id.textview1); adapter.notifyDataSetChanged(); lv.setAdapter(adapter); return v; } } 这就是我实现ListAdapter的方法 public […]

Fragment PopBackStack

我遇到一个奇怪的问题,同时使用Fragments并popup它们。 我有一个片段活动: Step1:我在起始命名片段A中的那个Activity的onCreate中附加了一个片段: 这是onCreate of Fragment Activity @Override protected void onCreate(Bundle savedBundleState) { super.onCreate(savedBundleState); setContentView(R.layout.activity_base_new); Fragement_Home home = new Fragement_Home(); FragmentManager manager = getSupportFragmentManager(); manager.beginTransaction().add(R.id.frameContent, home).addToBackStack(“home”).commit(); } 步骤:2之后我附加了使用以下代码替换Fragment: Fragment_More moreFragment = new Fragment_More(); FragmentManager manager = getSupportFragmentManager(); manager.beginTransaction().replace(R.id.frameContent, moreFragment).addToBackStack(“more”).commit(); 第3步:之后,我再次以相同的方式在Fragment_More上添加了一个片段: Fragment_AboutRockstand termsConditions = new Fragment_AboutRockstand(); getActivity().getSupportFragmentManager().beginTransaction().replace(R.id.frameContent, termsConditions).addToBackStack(“about_rockstand”).commit(); 这是我的片段活动onBackPressedButton Lisetener: @Override public void onBackPressed() { FragmentManager […]

全局加载器(LoaderManager),用于在多个活动/片段中重用

我想要实现的目标: 我有两个不同的片段。 我希望他们两个以两种forms(在列表和地图上)显示相同的数据。 我希望他们共享一个Loader(特别是AsyncTaskLoader )。 一切正常,但Loader不会被重复使用。 创建另一个并且数据加载两次。 我做的事: 在Fragment我使用LoaderManager lm = getActivity().getSupportLoaderManager(); 在这两个中,我实现了LoaderCallbacks<ArrayList>和所需的方法。 在两者中我使用lm.initLoader(0, args, this); 。 但是当我输出lm.toString()它们似乎是两个不同的lm.toString() 。 数据下载两次。 如何从不同的活动/片段重新连接到同一个Loader,而不是从它开始的那个? 它应该是可能的,因为无论如何在每个onCreate()上都将上下文附加到Loader,例如在配置更改时。

调用initLoader()后Loader没有启动?

我有一个片段,并且想要在单击按钮时启动加载器: public class MyFragment extends Fragment { public void onActivityCreated() { super.onActivityCreated(); Button btn = …; btn.setOnClickListener(new OnClickListener() { public void onClick(View view) { getLoaderManager().initLoader(500, null, mMyCallback); } }); } private LoaderManager.LoaderCallbacks mMyCallback = new LoaderManager.LoaderCallbacks() { @Override public Loader onCreateLoader(int arg0, Bundle arg1) { Log.e(TAG, “LoaderCallback.onCreateLoader().”); return new MyLoader(getActivity()); } } } public class […]

Android – IllegalStateException:map的大小为零

我是新手android程序员。 让我给出一些背景信息。 我的项目使用ActionBarSherlock。 我有一个包含两个片段的活动(Activity1) – 一个SherlockListFragment和一个包含谷歌地图MapView(本质上是一个MapFragment)的SherlockFragment。 搜索结果显示在列表片段和地图片段中,操作栏选项按钮切换列表和地图之间当前显示的片段。 选择列表中的项目或搜索结果的地图会启动一个新活动(Activity2),显示所选项目的数据。 这个新活动有一个类似的流程:一个显示数据的片段,一个显示位置的地图片段 – 由一个操作栏选项按钮切换。 问题: 我可以在搜索结果(Activity1)列表片段中选择一个列表项,并且成功启动详细信息页面(Activity2)。 当我从(Activity1)中的地图覆盖中选择一个地图项时,应用程序崩溃,我得到如下所示的堆栈跟踪。 到目前为止我尝试了什么: 我搜索了“地图零大小”和相同搜索的许多排列,包括“android”和“illegalstateexception”以及堆栈跟踪的各种行,我检查了甚至与android没有关系但与谷歌地图apis一般,我无法find任何地方或任何人遇到此错误除了在这个urlhttp://www.androidpub.com/1551654但我不知道韩国,谷歌翻译没什么帮助。 我试图find一些源代码片段来看看发生了什么,但事实并非如此。 我已经在我的代码中添加了日志以尝试确定exception发生的位置,并且我能够find的所有内容都发生在(Activity2)细节活动开始后的某个时间,也就是在调用onCreate()之后。 并且详细信息片段和地图片段都已在onCreate()中成功实例化了booth。 我无法在我的代码中find一个位置来捕获exception。 因此,对于我能看到的所有内容,此exception似乎完全是谷歌MapView代码中的错误,但如果我在任何地方犯了错误,请显示它。 我愿意向任何可以告诉我这里发生了什么的人提供帮助。 所以,总结一下。 从具有当前显示的mapview的活动(Activity1)转到另一个也包含另一个mapview的片段的Activity(Activity2)时发生崩溃。 但是,当从(Activity1)中显示的列表片段转到包含另一个映射片段的其他活动(Activity2)时,不会发生崩溃。 我希望这足够详细。 如果您有任何疑问,请发表评论。 D/memalloc( 121): /dev/pmem: Allocated buffer base:0x4215c000 size:2088960 offset:4177920 fd:66 D/memalloc(30944): /dev/pmem: Mapped buffer base:0x5b4f5000 size:6266880 offset:4177920 fd:164 D/AndroidRuntime(30944): Shutting down VM W/dalvikvm(30944): threadid=1: thread exiting with uncaught exception […]

我应该如何跟踪Google Analytics v4中的碎片?

随着Google Analytics v4(Android)的发布,跟踪片段视图的推荐方法是什么? 这个解决方案仍然是推荐的方式 – https://stackoverflow.com/a/19284014/413254 ? 文档中的示例( https://developers.google.com/analytics/devguides/collection/android/v4/#analytics-xml )具有以下配置: global_tracker.xml 300 true AnalyticsSampleApp ScreenView AnalyticsSampleApp EcommerceView UA-XXXXXXX-Y 这个配置看起来是为活动启用自动跟踪,但我认为这对Fragments没有任何魔力? 在这个例子中,我假设如果t.setScreenName(path);将发送“AnalyticsSampleApp ScreenView”屏幕事件t.setScreenName(path); 被称为路径是”com.google.android.gms.analytics.samples.mobileplayground.EcommerceFragment” ?

Android Espresso:如何在将一个活动跟踪到多个片段架构时测试特定片段

我的应用程序包含一个Activity for many Fragments 。 我希望使用Espresso来测试Fragments的UI。 但是我遇到了一个问题。 如何测试未添加到onCreate的Activity的Fragment 。 我在Fragment看到的所有例子都涉及在onCreate中添加Fragment 。 那么我如何告诉Espresso去特定Fragment并从那里开始呢? 谢谢

如何从片段中以编程方式在android中切换选项卡?

我已经实现了一个扩展FragmentActivity的TabActivity 。 它有5个标签,每个标签是一个Fragment 。 我正在寻找的是以编程方式在标签之间切换。 例如:如果我在tab4。 单击按钮我想从tab4移动到tab1 。 尝试了很多,但找不到解决方案。 尝试以下但它没有帮助。 来自SecondTab public void switchTabInActivity(String value){ FirstTab parent; parent = (FirstTab) getActivity().getParent(); parent.switchTab(value); } TabActivity /** To Change Tab*/ public void switchTab(String tabno){ this.onTabChanged(tabno); }

从片段中检索上下文

我创建了一个类来从PHP文件中检索JSON编码的注释。 这个类从AsyncTask扩展而来: public class RecuperarComentarisFoto extends AsyncTask{ @Override protected void onPreExecute() { super.onPreExecute(); pDialog = new ProgressDialog(????); pDialog.setMessage(“Creating Product..”); pDialog.setIndeterminate(false); pDialog.setCancelable(true); pDialog.show(); } @Override protected String doInBackground(String… arg0) { // TODO Auto-generated method stub return null; } @Override protected void onPostExecute(String result) { // TODO Auto-generated method stub super.onPostExecute(result); } } 正如你所看到的,我正试图在“doInBackground”进程工作时显示ProgressDialog。 但是progressDialog构造函数,请求一个Context,我不知道如何提供它。 我从Fragment调用这个类,所以我不能像这样访问上下文: pDialog […]

在活动之间保留片段状态

它可以在活动之间保留Fragment吗? 假设我有活动A ,片段F_Left放在左边,片段F_Right放在右边。 如果我想发布一个新的活动并保持片段F_Left …我该怎么办? 我可以在活动之间保留Fragment F_Left状态吗? 请注意,我想启动一个新的Activity,因为Fragment F_Left是我的应用程序菜单,Fragment F_Right完全改变了用户操作的上下文…而且我的应用程序有很多操作,所以每次操作都有一个Activity是有意义的。 我知道它可以在一个Activity保留Fragment ,但是由于Fragment生命周期与容器Activity密切相关,我不知道这是否可能在Activities之间保持Fragment状态。