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