我正在学习
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>