-1
我将以下Java代码转换为Kotlin代码。 Android Studio不显示任何错误消息。
但结果是不同的。我添加了模拟器结果的两张图片。
正如你所看到的Java工作正常,并显示工具栏中的3点菜单图标。但是Kotlin代码不起作用。
有人知道错误是什么吗?希望得到一些帮助。谢谢。Kotlin工具栏菜单图标问题
的Java:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_home, container, false);
//...
setHasOptionsMenu(true);
return view;
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater menuInflater) {
menuInflater.inflate(R.menu.menu_main, menu);
}
@Override
public void onPrepareOptionsMenu(Menu menu) {
MenuItem settings = menu.findItem(R.id.settings);
MenuItem singOut = menu.findItem(R.id.sign_out);
settings.setVisible(true);
singOut.setVisible(false);
}
科特林:
override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View? {
val view = inflater!!.inflate(R.layout.fragment_home, container, false)
//...
setHasOptionsMenu(true)
return view
}
override fun onCreateOptionsMenu(menu: Menu?, menuInflater: MenuInflater?) {
menuInflater!!.inflate(R.menu.menu_main, menu)
}
override fun onPrepareOptionsMenu(menu: Menu?) {
val settings = menu!!.findItem(R.id.settings)
val singOut = menu.findItem(R.id.sign_out)
settings.isVisible = true
singOut.isVisible = false
}
可见不存在 –
我的不好,你的变种有问题应该工作。它将调用setVisbile(boolean)方法。 你可以随时通过工具 - > Kotlin - >显示Kotlin字节码并按下“反编译”按钮 – tapchicoma
它应该但它没有检查代码的Java代表。它的奇怪可能是一个错误? –