在相对布局中使用片段管理器时需要建议
Need advice in using Fragment Manager inside Relative Layout
我对在相对布局中使用片段管理器有疑问,我尝试了很多在这里找到的不同代码,但没有一个对我有帮助。我已经创建了一个从我的数据库中取出的问题列表,我可以从这个列表转移到第二页,并从我的数据库中获得完整的解释。
在我的代码中,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"); }
}
}
你的 class 扩展了 RelativeLayout
RelativeLayout 没有 getFragmentManager
将 activity 传递给您的 class 并尝试 activity.getFragmentManager
检查一下:FragmentManager from Context
我的决定是在构造函数中传递片段管理器:
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"); }
}
我对在相对布局中使用片段管理器有疑问,我尝试了很多在这里找到的不同代码,但没有一个对我有帮助。我已经创建了一个从我的数据库中取出的问题列表,我可以从这个列表转移到第二页,并从我的数据库中获得完整的解释。
在我的代码中,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"); }
}
}
你的 class 扩展了 RelativeLayout
RelativeLayout 没有 getFragmentManager
将 activity 传递给您的 class 并尝试 activity.getFragmentManager
检查一下:FragmentManager from Context
我的决定是在构造函数中传递片段管理器:
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"); }
}