我正在使用一个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?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)