Articles of android fragments

从活动中设置片段的参数

我想将活动中的parameter passing给嵌入到活动中的片段。 片段静态嵌入xml布局中。 我试着像这样调用setArgument(): setContentView(R.layout.detail_activity); DetailFragment detailFragment = (DetailFragment) getFragmentManager().findFragmentById(R.id.detailFragment); detailFragment.setArguments(getIntent().getExtras()); 但是已经太晚了,因为必须在片段创建后立即调用setArguments。 唯一的是我看到getArguments()和更改捆绑。 有更好的方法吗?

片段内的findViewById

有没有办法在片段范围内通过id查找视图? 我正在使用一系列片段来呈现专门的列表。 片段从布局加载,因此它们的小部件都具有相同的ID。 我想我可以find一种方法,在创建期间(或之后)为每个小部件提供自定义ID。 但是,如果我能以某种方式将findViewById限制在片段的范围内,那将会更好。

已经调用了Android FragmentTransaction提交

我的错误: java.lang.IllegalStateException:已经调用了commit 我的代码: final FragmentTransaction fragmentTransaction =getFragmentManager().beginTransaction(); f1_fragment = new F1_Fragments(); f2_fragment = new F2_Fragments(); listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView parent, View view, int position, long id) { parent.getItemAtPosition(position); if(position==0){ fragmentTransaction.replace(android.R.id.content, f1_fragment); }else{ fragmentTransaction.replace(android.R.id.content, f2_fragment); } fragmentTransaction.addToBackStack(null); fragmentTransaction.commit(); } });

在backstack中使用带有片段的onSaveInstanceState?

我有片段,我保留在FragmentManager的后台。 保存每个片段状态以使用成员variables进行方向更改,例如: @Override public void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); outState.putLong(“userId”, mUserId); outState.putString(“username”, mUsername); } 我的问题是,如果有方向更改,因为backstack中的每个片段都是通过onSaveInstanceState调用的,所以我得到一个空指针exception,因为成员variables不再存在。 关于如何解决这个问题的任何想法?

以编程方式更改图层列表中的形状颜色

如何以编程方式更改图层列表中形状的颜色( #000000 )? 这是我的图层列表: // CHANGE THIS COLOR

如何从DialogFragment获取数据到片段?

想象一下,我有FragmentA ,我从中开始使用DigialFragment (框中有EditText )。 如何从EditText到FragmentA的值? 我尝试做这样的事情,但这并没有成功。

如何使用TabLayout在Fragment中使用CardView行实现RecyclerView

我想在使用TabLayout的Activity中实现ListFragment,以便我可以在不同的列表之间滑动。 最后它应该成为一个预订应用程序,以便您可以选择不同的学科,并预订一个特定的时间段。 但到目前为止,我只能实现ListActivity或标签活动(android studio中的标准活动),但不能同时实现两者。 如果有人可以提供帮助,我会很高兴的。 标签式活动: public class Diciplines extends AppCompatActivity { /** * The {@link android.support.v4.view.PagerAdapter} that will provide * fragments for each of the sections. We use a * {@link FragmentPagerAdapter} derivative, which will keep every * loaded fragment in memory. If this becomes too memory intensive, it * may be best to […]

使用带有片段的工具栏

我正在尝试创建一个viewpager,它使用不同的工具栏刷过3个不同的片段。 我之前在一个活动中实现了新的工具栏,并让它工作,但我试图让它与片段一起工作 这是片段代码 @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout resource that’ll be returned View rootView = inflater.inflate(R.layout.fragment_home, container, false); mToolbar = (Toolbar) rootView.findViewById(R.id.toolbar_home); if (mToolbar != null) { setSupportActionBar(mToolbar); } mToolbar.setTitle(null); return rootView; } 我正在使用Fragment扩展我的片段,但是我得到了错误 Cannot resolve method setSupportActionBar 我不知道如何解决这个问题,如果我删除setSupportActionBar代码,它会停止使用某些设备吗? 谢谢

Android:如何在Fragments视图准备好时通知Activity?

我正在使用Google Maps API V2进行活动,其中下拉导航地图位于第二个位置。 我正在实际添加地图,如: mMapFragment = supportMapFragment.newInstance(); getSupportFragmentManager() .beginTransaction() .replace(R.id.placeHolder, mMapFragment, TAG_MAP) .commit(); 我想获得GoogleMap,因为文档https://developers.google.com/maps/documentation/android/map说它应该使用mMapFragment.getMap() ,但它返回null。 根据http://developer.android.com/reference/com/google/android/gms/maps/SupportMapFragment.html ,如果Fragment尚未通过onCreateView生命周期事件,则返回null。 片段何时准备好怎么知道? 编辑:我发现这个如何知道在使用SupportMapFragment时地图已经准备就绪? 覆盖onActivityCreated似乎是一个解决方案,但是我必须通过构造函数而不是newInstance()来实例化片段,它有什么区别吗?

如何在Recycler.Adapter上调用getFragmentManager?

我正在将我的应用程序的ListView转换为RecyclerView。 在ListView上,实现OnClickListener非常容易,但在RecyclerView中,我们必须在适配器中执行它。 我想在用户点击某个项目时打开一个新的片段。 要做到这一点,我必须在适配器中调用FragmentManager,我无法做到。 这是我的RecyclerAdapter代码: public ListItemViewHolder(View itemView) { super(itemView); title = (TextView) itemView.findViewById(R.id.title); description = (TextView) itemView.findViewById(R.id.description); itemView.setOnClickListener(this); } @Override public void onClick(View v) { //Call FragmentManager and add Fragment to it. } } 那么,如何调用FragmentManager并在其中添加Fragments。 有没有比sendBroadcast或任何其他方法更好的方法。