我正在学习
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):
@Override public 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的引用:
@Override public void respond(int i) { // Todo Auto-generated method stub FragmentManager 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; @Override public 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>
解决方法
原文地址:https://www.jb51.cc/android/311032.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。