Android应用程序和Scala。这个片段应该提供一个默认构造函数

Android应用程序和Scala。这个片段应该提供一个默认构造函数,android,eclipse,scala,Android,Eclipse,Scala,我正在尝试用Scala制作Android应用程序。我不擅长,也没有找到好的教程。所以,我正在使用Android+Java教程,并尝试在Scala中使用教程来做一些事情。我对碎片有个问题。片段代码如下所示: class PlaceholderFragment extends Fragment { override def onCreateView(inflater: LayoutInflater, container: ViewGroup, savedInstanceState: Bundle

我正在尝试用Scala制作Android应用程序。我不擅长,也没有找到好的教程。所以,我正在使用Android+Java教程,并尝试在Scala中使用教程来做一些事情。我对碎片有个问题。片段代码如下所示:

class PlaceholderFragment extends Fragment {
  override def onCreateView(inflater: LayoutInflater, container: ViewGroup, savedInstanceState: Bundle) : View = {
    inflater.inflate(R.layout.fragment_main, container, false)          
  }
}
我得到的错误是:

- This fragment should provide a default constructor (a public constructor with no 
 arguments) (com.example.myscalaandroidproject.MainActivity.PlaceholderFragment)
- Avoid non-default constructors in fragments: use a default constructor plus 
 Fragment#setArguments(Bundle) instead
显然,我需要创建一个默认构造函数。这可能是个蹩脚的问题,但我怎样才能把它做好呢

public PlaceholderFragment ()
{

}
如果您想传递数据,就不能使用构造函数,因为Android可以使用默认构造函数销毁和重新创建数据。您需要使用参数,这些参数在重新创建片段时保留

public static PlaceholderFragment newInstance(int id) {
    PlaceholderFragment myFragment = new PlaceholderFragment ();

    Bundle args = new Bundle();
    args.putInt("id", id);
    myFragment.setArguments(args);

    return myFragment;
}

我知道可以同时用Scala和Java编写应用程序。但我认为我不能在Scala类中插入Java代码。。。或者我可以吗?我不知道Scala是什么,但似乎应该有一些从java到Scala的转换,因为您的
onCreateView
与java版本非常相似。您列出的Scala类已经有一个默认构造函数(因为它在类名后没有参数)。@IulianDragos我明白了。我该怎么处理这些错误呢?我可以忽略它们吗?Eclipse建议“禁用签入此文件”。这是解决问题的正确方法吗?@IulianDragos你知道,这可能是某种eclipse错误或其他什么。我只是做了另一个项目,做了完全相同的,但这次它起作用了。你们能再写一次吗?但在答案部分,我会把你们的答案标记为已接受。这可能是由proguard引起的。确保在proguard配置文件中保留片段构造函数。我没有Android应用程序开发经验@far.be可能是对的,所以如果是因为proguard,他应该是获得声誉积分的人。:)