Articles of android fragmentactivity

使用`onRetainCustomNonConfigurationInstance`来保留跨配置更改的数据

我已经为Android编程了一段时间,我仍在寻找保留数据而不是配置更改的解决方案。 除了在onSaveInstanceState setRetainInstance s保存到Activity的Bundle ,docs建议使用Fragment并将setRetainInstance标志设置为true。 但我刚刚遇到一些使用onRetainCustomNonConfigurationInstance来保存任意对象的代码(以一种奇特的方式,但基本上是大对象,而不引用Activity等)。 我从未见过这种方法,所以我有些疑惑: 这种方法是否可以安全地调用存储任意对象(从某种意义上说,我可以确定它会被调用,并且不会很快被弃用/删除)? 这个方法与onRetainNonConfigurationInstance()不同,它也应该返回Object ,实质上应该类似吗? 由于某种原因,使用保留片段仍然更好吗? 作为奖励,我将非常感谢任何其他提示或解决方案来保存AsyncTask , Observable ,view的演示者等对象的状态并继续

在viewpager中有3个android片段,如何让它们全部活着?

我有一个至少包含3个片段的viewpager。 如果用户将数据输入A,然后输入B,则输入C并返回A,数据从A中丢失。 我想我在某处看到这与内存管理有关,因为片段只连接或存储相邻的片段,当我离得太远时,它会杀死A. 但是我希望保留每个片段的生命,即使我有> 3。 除非明确指示,否则如何告诉viewpager永远不会杀死片段?

从android中的片段管理工具栏的导航和后退按钮

我的所有片段都是通过ActionBarActivity (mainActivity)控制的,在DrawerLayout中实现了DrawerLayout ,并且所有子片段都通过drawerLayout的列表项单击进行推送。 我面临的问题是在通过抽屉推出片段之后我想将抽屉图标更改为ToolBar后退图标,以便用户可以导航到上一个片段并处理android.R.id.home内部的回调。相同的片段或mainActivity内部。 我使用的代码是: MainActivity.java public class MainActivity extends ActionBarActivity { private DrawerLayout layoutDrawer; private ActionBarDrawerToggle drawerToggler; private Stack stack; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); stack = new Stack(); layoutDrawer = (DrawerLayout) findViewById(R.id.layout_drawer); drawerToggler = new ActionBarDrawerToggle(this, layoutDrawer, toolbar, R.string.app_name, R.string.app_name); layoutDrawer.setDrawerListener(drawerToggler); setUpDrawerList(); pushFragment(new FirstFragment(), […]

为什么要调用片段onCreateView,onCreate,onActivityCreated

我有一个应用程序,处理片段和ViewPager。 我在ViewPager中有三个片段。 当你在它们之间切换时,它总是导致其他两个片段调用它们的onCreateView方法。 仅在创建FragmentActivity时如何才能执行一次? 我已经阅读了一些问题并尝试了解决方案,但片段仍然具有相同的行为。 ListFragment onCreate调用了两次 onCreate()和onCreateView()调用的不仅仅是需要的(片段) 这是一些代码,如果它可以帮助你,伙计们: 主要活动: public class StartingActivity extends FragmentActivity implements View.OnClickListener { ViewPager viewPager; CirclePageIndicator pageIndicator; Button discount; Button qrCode; Button pay; TabHost tabHost; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.starting_layout); viewPager = (ViewPager) findViewById(R.id.pager); if (savedInstanceState == null) { Fragment firstPage = Fragment.instantiate(this, FindTovarFragment.class.getName()); Fragment secondPage = Fragment.instantiate(this, […]

如何在android中实现显示和隐藏片段

如何在Android中实现显示和隐藏片段? 我在活动中添加了两个片段。 一个包含菜单和一个片段的片段包含子菜单。 我有很多菜单片段中的button像家,想法等,如果我点击想法button。 我必须显示子菜单。 如果我再次点击想法button,我必须隐藏子菜单。 任何人都可以提供例子,或如何访问另一个片段中的一个视图片段? 这是我的布局主要 ?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent" > <fragment class="com.gcm.fragment.CommonFragment" android:id="@+id/the_frag" android:layout_width="wrap_content" android:layout_height="match_parent" /> <fragment class="com.gcm.fragment.SubFragment" android:id="@+id/the_frag1" android:layout_marginTop="130dip" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> 在我的片段 package com.gcm.fragment; import android.app.Fragment; import android.app.FragmentManager; import android.app.FragmentTransaction; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.View.OnClickListener; import android.widget.TextView; public class CommonFragment […]

使用片段从图库中select图像

我正在尝试使用从fragmentactivity调用的片段从图库中获取图像,但片段类的onActivityResult未被调用。 我发现这可能是由于FragmentActivity类的onActivityResult发生的,但是当我检查两个类的日志时,非不被调用,因此我无法从库中访问选定的图像。 我已经尝试了大部分的解决scheme,但仍然无法弄清楚这个问题。 我的主要片段活动 public class CreateEvent extends FragmentActivity{ private int CREATE =0; private int INVITE = 1; private int FRAGMENT_COUNT = INVITE +1; private Fragment[] fragment = new Fragment[FRAGMENT_COUNT]; private boolean isResumed = false; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); FragmentManager fm = getSupportFragmentManager(); fragment[CREATE] = fm.findFragmentById(R.id.create); fragment[INVITE] = fm.findFragmentById(R.id.invite); FragmentTransaction transaction = […]

在地图棉花糖片段活动崩溃

我正在使用mapActivity maps.In Java类获取setContentView错误。 我的Mapscreen.java是这样的:它在一些显示棉花糖崩溃的设备上工作正常。或者还有其他原因吗? public class MapScreen extends FragmentActivity implements LocationListener, GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.map_screen); …. SupportMapFragment fm = (SupportMapFragment) getSupportFragmentManager() .findFragmentById(R.id.map); googleMap = fm.getMap(); } and my xml has fragment using SupportMapFragment as well. map_screen.xml is like : <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > […]

片段活动 – 应用程序死亡,没有保存的状态

我只有很less的用户面对一个非常混乱的问题。 当在片段内按下一个button时,会发生错误,该片段将启动另一个片段活动。 这是堆栈跟踪: I/20:22:23.901 ActivityManager( 1668) Start proc com.brandall.nutter for activity com.brandall.nutter/.ActivityHomeFragment: pid=8956 uid=10125 gids={50125, 3003, 3001, 3002, 1015, 1023, 1006, 1028} I/20:22:23.881 WindowState( 1668) WIN DEATH: Window{41ed1948 u0 com.brandall.nutter/com.brandall.nutter.ActivityLinkAppsFragment} W/20:22:23.881 ActivityManager( 1668) Force removing ActivityRecord{411c4188 u0 com.brandall.nutter/.ActivityLinkAppsFragment}: app died, no saved state I/20:22:23.881 WindowState( 1668) WIN DEATH: Window{41b6a178 u0 Toast EXITING} W/20:22:23.881 InputDispatcher( 1668) […]

如何从FragmentPagerAdapter中删除片段?

我知道这里有一些关于这方面的话题,但我找不到解决scheme,我可以为我的案件工作。 我有一个工作滑animation廊使用自定义FragmentActivity和FragmentPagerAdapter ,其中包含碎片列表。 在FragmentActivity是一个ImageView “删除”。 如果点击,函数deleteMedia()被调用,然后应该删除当前的Fragment并且应该显示下面的Fragment 。 在我的例子中,我将如何做到这一点? FragmentActivity: public class GalleryPagerActivity extends FragmentActivity implements OnClickListener { private Intent intent; private SharedPreferences settings; private PagerAdapter mPagerAdapter; private ViewPager mPager; private List<Fragment> fragments; private List<WhiteboardMedia> wiList; private int selectedPosition; private LinearLayout llTop; private TextView tvTop; private ImageView delete; private ImageView share; private TextView tvCounter; private TextView […]

我如何使用片段在ViewPager中放置标题?

我使用ViewPager允许用户在片段之间滑动。 我如何添加每个片段的标题到屏幕上? package com.multi.andres; import java.util.List; import java.util.Vector; import com.viewpagerindicator.TitlePageIndicator; import com.viewpagerindicator.TitleProvider; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.view.ViewPager; public class ViewPagerFragment extends FragmentActivity{ private PagerAdapter mPagerAdapter; //contiene el pager adapter private static String[] titulosPaginas = { "APP 1", "APP 2" }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); super.setContentView(R.layout.lcmeter); […]