2015-02-07 77 views
1

嗨,大家好我有我的片段有问题。我只是对android开发新手而已,所以请放过我。这里说的是什么。片段交易不能应用到

import android.app.FragmentManager; 
import android.app.FragmentTransaction; 
import android.support.v7.app.ActionBarActivity; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuItem; 


public class MainActivity extends ActionBarActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    MyFragment fragment = new MyFragment(); 

    FragmentManager manager = getFragmentManager(); 
    FragmentTransaction transaction = manager.beginTransaction(); 

    transaction.add(R.id.my_layout, fragment, "alvin"); 

    transaction.commit(); 

} 

我有问题的“transaction.add();”部分。它说“碎片交易不能应用于”。

我不知道为什么,但我的继承人MyFragment.java -

import android.os.Bundle; 
import android.support.annotation.Nullable; 
import android.support.v4.app.Fragment; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 

public class MyFragment extends Fragment{ 
    @Override 
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 
     return inflater.inflate(R.layout.my_fragment_layout, container, false); 
    } 
} 

和我activity_main.xml中

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    tools:context=".MainActivity" 
    android:background="#00BBFF" 
    android:id="@+id/my_layout"> 



</RelativeLayout> 

my_fragment_layout.xml 

    <?xml version="1.0" encoding="utf-8"?> 
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="#FFBB00"> 

    <TextView 
     android:layout_margin="40dp" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:text="MY FRAGMENT" 
     android:id="@+id/textView" 
     android:layout_gravity="left|center_vertical"/> 

    </LinearLayout> 

我的继承人Android清单

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.serverus.fragmentexperiment" > 

    <application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 
     <activity 
      android:name=".MainActivity" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    </application> 

</manifest> 

我只是想看到我的设备上运行我的碎片请帮助,并提前感谢。

+0

该活动应该扩展'FragmentActivity' – 2016-08-22 21:03:56

回答

8

更换

FragmentManager manager = getFragmentManager(); 

通过

FragmentManager manager = getSupportFragmentManager(); 

MyFragment类是一个support Fragment,您可以通过检查import语句

进口android.support.v4.app看。分段;

+1

'import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentTransaction; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.view.Menu;' import android.view.MenuItem; then 'FragmentManager manager = getSupportFragmentManager(); FragmentTransaction transaction = manager.beginTransaction();' 这对我很有用。谢谢 – 2015-02-07 21:30:29