add()函数在Fragment中给出错误

时间:2014-07-09 15:25:53

标签: android

我在Main Activity中有以下代码,我有一个FragmentLayout类负责调用片段。 代码

import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;


public class MainActivity extends FragmentActivity 
{
Button btn;
@Override
public void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    btn=(Button)findViewById(R.id.button1);
    btn.setOnClickListener(new OnClickListener() 
    {

        @Override
        public void onClick(View v) 
        {
            FragmentLayout f1=new FragmentLayout();
            getSupportFragmentManager().beginTransaction().add(R.id.main_id, f1).commit();

        }
    });
}

}

我收到此错误 -

FragmentTransaction类型中的方法add(int,Fragment)不适用于参数(int,FragmentLayout)MainActivity.java。

这是什么问题?

2 个答案:

答案 0 :(得分:1)

您只能将事务管理器用于片段。 我举个简单的例子: 为它创建一些片段和铺设:

public class FragmentOne extends Fragment {
   @Override
   public View onCreateView(LayoutInflater inflater,
          ViewGroup container, Bundle savedInstanceState) {
          //Inflate the layout for this fragment
          return inflater.inflate(R.layout.fragment_one, container, false);
       }
   }

在你的public void onClick(View v) 只需致电:

 FragmentOne f1=new FragmentOne();
 getSupportFragmentManager().beginTransaction().add(R.id.main_id, f1).commit();

答案 1 :(得分:1)

下面

getSupportFragmentManager().beginTransaction().add(R.id.main_id, f1).commit();

f1必须延长Fragment才能作为FragmentTransaction的一部分添加。