Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在相对布局中使用片段管理器需要建议吗_Android_Android Fragments_Android Relativelayout_Fragmentmanager - Fatal编程技术网

Android 在相对布局中使用片段管理器需要建议吗

Android 在相对布局中使用片段管理器需要建议吗,android,android-fragments,android-relativelayout,fragmentmanager,Android,Android Fragments,Android Relativelayout,Fragmentmanager,我有一个关于在相对布局中使用片段管理器的问题,我在这里找到了很多不同的代码,但没有一个代码对我有帮助。我已经创建了一个问题列表,这些问题从我的数据库中出来,我可以从这个列表转到第二页,并从数据库中得到完整的解释。 在我的代码中,getFragmentManager指示灯为红色。 有人能帮我解决这个问题吗 public class RuleButton extends RelativeLayout { private TextView namerul; private String

我有一个关于在相对布局中使用片段管理器的问题,我在这里找到了很多不同的代码,但没有一个代码对我有帮助。我已经创建了一个问题列表,这些问题从我的数据库中出来,我可以从这个列表转到第二页,并从数据库中得到完整的解释。 在我的代码中,getFragmentManager指示灯为红色。
有人能帮我解决这个问题吗

public class RuleButton extends RelativeLayout {
    private TextView namerul;
    private String nameRule = "";

    public RuleButton(Context context) {
        super(context);
        initComponent();
    }

    public  void initComponent() {
        LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        inflater.inflate(R.layout.rulesbutton, this);
         namerul = (TextView) findViewById(R.id.ruleName);
        namerul.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                getFullRule();
            }
        });
        updateFields();
    }

    public void setRuleName(String name) {
        nameRule = name;
        namerul.setText(nameRule);
    }

    public void updateFields() {
        setRuleName(nameRule);

    }

    public void getFullRule () {

        Fragment fragment = null;
        Bundle args = new Bundle();
        args.putString("Rule",nameRule);
        fragment = new SomeRuleFragment();

        if (fragment != null) {
            fragment.setArguments(args);
            FragmentManager fragmentManager = getFragmentManager();
            fragmentManager.beginTransaction().replace(R.id.frame_container, fragment).commit();

        }
        else { // error in creating fragment
            Log.e("MainActivity", "Error in creating fragment"); }
    }


}

您的类扩展了RelativeLayout
RelativeLayout没有getFragmentManager
将活动传递给您的班级,然后尝试
活动。getFragmentManager


检查此项:

我的解决方案是在构造函数中传递片段管理器:

    public RuleButton(Context context, FragmentManager _fragmentManager, boolean s) {
    super(context);
    fragmentManager = _fragmentManager;
    initComponent(s);
}

public void getFullRule () {
    Fragment fragment = null;
    Bundle args = new Bundle();
    args.putString("Rule", ruleID);
    fragment = new SomeRuleFragment();

    if (fragment != null) {
        fragment.setArguments(args);
        fragmentManager.beginTransaction().replace(R.id.frame_container, fragment)
                .addToBackStack("")
                .commit();
    }
    else {
        Log.e("MainActivity", "Error in creating fragment"); }
}

我没有得到我真正需要做的。我已经尝试过这样做
如果(fragment!=null){fragment.setArguments(args);Activity mainAct=new MainActivity();FragmentManager FragmentManager=mainAct.getFragmentManager();
,但仍然没有运气。当我尝试获取新片段时,apk不起作用并且失败