我正在尝试从这个博客的应用程序.在扩展时FragmentActivity,我收到以下错误:
`FragmentActivity` was not able to resolve.
Run Code Online (Sandbox Code Playgroud)
我错过了任何图书馆还是其他什么?
我的代码:
public class Testing_newActivity extends FragmentActivity { // here the FragmentActivity getting error package not found for import
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.main);
if (getResources().getConfiguration().orientation
== Configuration.ORIENTATION_LANDSCAPE) {
// If the screen is now in landscape mode, we can show the
// dialog in-line so we don't need this activity.
finish();
return;
}
if (savedInstanceState == …Run Code Online (Sandbox Code Playgroud) 我有一个至少有3个片段的viewpager.如果用户将数据输入A,然后输入B,则输入C并返回A,数据从A中丢失.
我想我在某处看到这与内存管理有关,因为片段只连接或存储相邻的片段,当我离得太远时它会杀死A. 但是我希望保留每个片段的生命,即使我有> 3.
除非明确指示,否则如何告诉viewpager永远不会杀死片段?
android android-fragments android-viewpager android-fragmentactivity
我有一个FragmentActivity我添加的地方Fragment.根据某些情况,我想Buttons从该片段的布局访问并更改它们的单击侦听器.
我所做的是:
View view = myFragment.getView();
Button myButton = (Button) view.findViewById(R.id.my_button);
myButton.setOnClickListener(new MyClickListener());
Run Code Online (Sandbox Code Playgroud)
但view变量总是如此null.
我如何获得活动的视图?
我有一个应用程序,处理片段和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, MainWindowActivity.class.getName());
Fragment thirdPage = Fragment.instantiate(this, MapActivity.class.getName());
if ((firstPage != null && !firstPage.isDetached())|| (secondPage != null && !secondPage.isDetached()) || (thirdPage != null && !thirdPage.isDetached())) {
List<Fragment> viewPagerFragments = new ArrayList<Fragment>(); …Run Code Online (Sandbox Code Playgroud) android android-fragments android-viewpager android-fragmentactivity
我有一个FragmentActivity(支持片段),我通过代码创建片段并将它们放入FrameLayouts.到目前为止一切正常.现在,如果我离开应用程序返回一切正常,只要系统不会杀死我的活动(或者我使用DDMS中的停止按钮执行此操作).如果发生这种情况,则不会调用任何内容,我的Activity也会被杀死.没有调用onDestroy.
因此,当我重新打开我的应用程序时,所有碎片仍然存在,并且我得到NullPointerExeptions因为他们试图完成他们的工作.片段不应该存在于App的这种状态中,这对我来说是个问题.
我不需要它们在backStack中,所以我不把它们放在那里,不能调用popBackStack()来摆脱它们.
如何在onCreate()中重置FragmentManager,或者只是确保片段也被销毁?
android kill-process ondestroy android-fragments android-fragmentactivity
我已经为Android编程了一段时间,我仍在寻找保留数据而不是配置更改的解决方案.除了节约Parcelables到活动的Bundle在onSaveInstanceState文档使用暗示Fragment与setRetainInstance标志设置为true.
但我刚刚遇到一些onRetainCustomNonConfigurationInstance用于保存任意对象的代码(以一种奇特的方式,但基本上是没有引用的大对象Activity等).我从未见过这种方法,所以我有些疑惑:
onRetainNonConfigurationInstance(),也应该返回Object,实质上应该是同样的?作为奖励,我将不胜感激任何其他提示或解决方案,以节省状物体的状态AsyncTask,Observable,视图的主持人,并继续
android android-framework android-activity android-fragmentactivity
一般问题 我可以将碎片定义为单身人士吗?
具体问题
在我的应用程序中,我有一个'FragmentActivity',FragmentPager其中有一个有两个片段,FragmentA和FragmentB.
我在FragmentAextends Fragment类中将片段定义为单例:
private static instance = null;
public static FragmentA getInstance() {
if (instance == null) {
instance = new FragmentA();
}
return instance;
}
private FragmentA() {}
Run Code Online (Sandbox Code Playgroud)
在我的FragmentPagerAdapter:
@Override
public Fragment getItem(int position) {
switch(position){
Fragment fragment = null;
case 0:
fragment = FragmentA.getInstance();
break;
case 1:
fragment = FragmentB.getInstance();
break;
}
return fragment;
}
Run Code Online (Sandbox Code Playgroud)
这就是我如何夸大片段布局:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle …Run Code Online (Sandbox Code Playgroud) android android-fragments android-viewpager android-fragmentactivity
我有三个片段F1 F2 F3 F4都可以从侧边栏访问.
所有四个都可以随时以任何顺序调用,
现在我想要,如果F1已经被点击(创建)然后再也没有创建F1,而只是使用片段管理器将片段F1带回到前面.所有其他片段都一样
到目前为止,我为容器中的每个碎片尝试了这个(碎片活动)
if (fragmentManager.findFragmentByTag("apps")==null) {
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction transaction = fragmentManager.beginTransaction();
transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
Fragment newFragment = new CategoriesFragment();
transaction.replace(R.id.content_frame, newFragment, "apps");
transaction.addToBackStack("apps");
transaction.commit();
} else{
}
Run Code Online (Sandbox Code Playgroud)
Ifpart确保我重新创建了NO片段(如果已经创建了它),但是我应该在什么else部分写入,以便已经创建的片段可以在View Hierarchy中显示出来
请帮忙,我坚持了2天.
我正在构建一个使用Fragment的应用程序和一个MainActivity在同一个ViewPager中显示不同片段的应用程序来复制典型MVC应用程序的行为.
问题是,我不知道如何以编程方式更新片段以更新ViewPager新的片段更改
例如,我有这个Fragment显示图表,(在我的意图),当我setFragment(int interval, Point[] snodePoint)从主要调用时,图表应该更新ViewPager
public class LineFragment extends Fragment {
static int interval;
static Point snodePoints[];
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
final View v = inflater.inflate(R.layout.fragment_linegraph, container,
false);
Bundle bundle = this.getArguments();
ChartConfig cg = bundle.getParcelable("FragmentData");
snodePoints = cg.getPoints();
interval= cg.getInterval();
Line l = new Line();
for(int i=0; i<snodePoints.length; i++){
LinePoint p = new LinePoint();
Point sp=snodePoints[i];
p.setX(sp.getX());
p.setY(sp.getY());
l.addPoint(p)
}
l.setColor(getResources().getColor(R.color.green));
LineGraph li …Run Code Online (Sandbox Code Playgroud) 我正在阅读有关Fragments的Android文档.定义片段UI的布局可以在Activity的布局中,在单独的.xml文件中定义,或者根本不定义.
根据文件
您还可以使用片段为活动提供背景行为,而无需显示其他UI.
为什么我需要使用另一个Fragment为Activity添加功能而不是在Activity中定义更多功能?这样的非UI片段是否只是为了模块化而使用?采用这种方法还有其他原因吗?我将欣赏一个适合使用非UI片段的示例.
提前感谢您的协助.