android.support.v4.app.FragmentManager或android.app.FragmentManager?

android.support.v4.app.FragmentManager或android.app.FragmentManager?,第1张

概述我正在学习 Android开发.我陷入了一件非常容易的事情. 我正在使用一个Activity,2个片段和1个界面创建一个App. android:minSdkVersion="11"android:targetSdkVersion="19 所以在主要活动中我试图使用管理器创建对Fragment B的引用.我被困在这里,因为Eclispse告诉我改变一些事情(见下文): 我的意思:` @Overr 我正在学习 Android开发.我陷入了一件非常容易的事情.

我正在使用一个Activity,2个片段和1个界面创建一个App.

androID:minSdkVersion="11"androID:targetSdkVersion="19

所以在主要活动中我试图使用管理器创建对Fragment B的引用.我被困在这里,因为Eclispse告诉我改变一些事情(见下文):

我的意思:`

@OverrIDe    public voID respond(int i) {        // Todo auto-generated method stub    FragmentManager manager =getFragmentManager();    FragmentB f2= (FragmentB) manager.findFragmentByID(R.ID.fragment2);}`

如果我这样做,我会收到错误消息并需要执行一些更改.更改后,代码看起来像这样(我仍然无法访问FragmentB):

@OverrIDepublic voID respond(int i) {    // Todo auto-generated method stub    androID.app.FragmentManager manager =getFragmentManager();    androID.app.Fragment f2=  manager.findFragmentByID(R.ID.fragment2);}

有关额外的详细信息,我将在此处放置活动的导入标题:

package com.example.modular_ui;import androID.support.v7.app.ActionBaractivity;import androID.support.v7.app.Actionbar;import androID.support.v4.app.Fragment;import androID.support.v4.app.FragmentManager;import androID.app.Activity;import androID.os.Bundle;import androID.vIEw.LayoutInflater;import androID.vIEw.Menu;import androID.vIEw.MenuItem;import androID.vIEw.VIEw;import androID.vIEw.VIEwGroup;import androID.os.Build;public class MainActivity extends Activity implements Communicator{....

我在这里想念的是什么?整个support.v4 /support.v7对新手来说有点混乱.

编辑:
更改为:

import androID.app.Fragment;import androID.app.FragmentManager;

和扩展FragmentActivity我仍然无法创建对FragmentB的引用:

@OverrIDepublic voID respond(int i) {    // Todo auto-generated method stubFragmentManager man = getFragmentManager();FragmentB b = man.findFragmentByID(R.ID.fragment2);

}

正如请求我发布了FragmentB代码:

package com.example.modular_ui;import androID.os.Bundle;import androID.support.v4.app.Fragment;import androID.vIEw.LayoutInflater;import androID.vIEw.VIEw;import androID.vIEw.VIEwGroup;import androID.Widget.TextVIEw;public class FragmentB extends Fragment {TextVIEw text;@OverrIDepublic VIEw onCreateVIEw(LayoutInflater inflater,VIEwGroup container,Bundle savedInstanceState) {    // Todo auto-generated method stub    return inflater.inflate(R.layout.fragment_b,container);}@OverrIDe    public voID onActivityCreated(Bundle savedInstanceState) {        // Todo auto-generated method stub        super.onActivityCreated(savedInstanceState);        text = (TextVIEw) getActivity().findVIEwByID(R.ID.textVIEw1);    }

主XML

<relativeLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"    xmlns:tools="http://schemas.androID.com/tools"    androID:ID="@+ID/container"    androID:layout_wIDth="match_parent"    androID:layout_height="match_parent"    tools:context="com.example.modular_ui.MainActivity"    tools:ignore="MergeRootFrame" >    <fragment        androID:ID="@+ID/fragment1"        androID:name="com.example.modular_ui.FragmentA"        androID:layout_wIDth="match_parent"        androID:layout_height="wrap_content" />    <fragment        androID:ID="@+ID/fragment2"        androID:name="com.example.modular_ui.FragmentB"        androID:layout_wIDth="wrap_content"        androID:layout_height="wrap_content"        androID:layout_alignParentleft="true"        androID:layout_below="@+ID/fragment1"        androID:layout_margintop="54dp" /></relativeLayout>
解决方法 首先:您的活动应该扩展FragmentActivity.

关于支持库.引入它们是为了给老式机器人添加一些功能.例如,片段是在AndroID 3.0中引入的(SDK nr:11).事实上(根据文件)AndroIDs 3.0<支持libary使用Fragments的系统实现.

总结

以上是内存溢出为你收集整理的android.support.v4.app.FragmentManager或android.app.FragmentManager?全部内容,希望文章能够帮你解决android.support.v4.app.FragmentManager或android.app.FragmentManager?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1131643.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存