Android应用和Scala。该片段应该提供默认构造函数

时间:2014-03-27 22:00:30

标签: android eclipse scala

我正在尝试在Scala中创建Android应用程序。我不擅长它,我找不到好的教程。所以,我正在使用Android + Java教程并尝试从Scala中的教程做一些事情。我有Fragment的问题。片段代码如下所示:

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

显然我需要创建一个默认构造函数。这可能是一个蹩脚的问题,但我该怎么办呢?

1 个答案:

答案 0 :(得分:0)

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;
}