我正在尝试在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
显然我需要创建一个默认构造函数。这可能是一个蹩脚的问题,但我该怎么办呢?
答案 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;
}