您好,我在为应用程序创建自定义骨干应用程序时遇到此错误。它的作用是向其父构造函数发送一个目标容器,用于安装片段。自定义类只是零arg构造函数,并且超出了存储targetContainer的父级的整数。但是当我运行我的应用程序时,我得到一个运行时异常。
这是我的代码:
这是一个特定于我计划构建的应用的自定义类:
public class NoteActivity extends BackboneActivity
{
public NoteActivity()
{
super(R.id.fragmentContainer);
addFragment(new NoteFragment());
}
}
现在这里是骨干应用程序,所以我可以随意添加片段。我希望使用这个类对app和fragment进行动态控制:
public class BackboneActivity extends ActionBarActivity
{
private FragmentManager fragmentManager;
private int targetContainer = -1;
public BackboneActivity(int target)
{
super();
targetContainer = target;
}
protected boolean addFragment(Fragment fragment)
{
if(fragment == null) return false;
fragmentManager.beginTransaction()
.add(targetContainer, fragment)
.commit();
return true;
}
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(targetContainer);
fragmentManager = getSupportFragmentManager();
}
}
我仍处于Android和Java的学习过程中,我有一些编程经验,所以我不太确定我一直缺少什么。
我得到的错误是不允许访问Constructor。这在技术上是否与此处描述不允许访问类的其他帖子不同?
我承认我感觉如此& & (& dumb with this error。
感谢。
答案 0 :(得分:1)
你能不能这样做:
public NoteActivity()
{
super();
addFragment(new NoteFragment());
}
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(targetContainer);
// you will have to put a getter/setter in BackboneActivity or change access modifiers
this.setTargetContainer(R.id.fragmentContainer);
fragmentManager = getSupportFragmentManager();
}