酷代码 AI
菜单
全部AI  /  热门  /  AI问答
服务商

在android开发中,fragment和activity的oncreateoptionsmenu

在Android开发中,`onCreateOptionsMenu()`方法是在`Activity`中定义的,用于在选项菜单中创建菜单项。`Fragment`没有直接提供这个方法,但是可以通过`Activity`来实现。 如果你想要在`Fragment`中创建选项菜单,你可以: 1. 在`Fragment`中重写`onCreateOptionsMenu()`方法,创建菜单项。 2. 在`Activity`中重写`onCreateOptionsMenu()`方法,然后在`onOptionsItemSelected()`方法中判断点击的菜单项是哪个`Fragment`创建的,然后调用相应的`Fragment`的`onOptionsItemSelected()`方法。 例如: ```java public class MyFragment extends Fragment { @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { inflater.inflate(R.menu.my_menu, menu); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.my_menu_item: // do something return true; default: return super.onOptionsItemSelected(item); } } } public class MyActivity extends AppCompatActivity { @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.my_activity_menu, menu); return super.onCreateOptionsMenu(menu); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.my_activity_menu_item: MyFragment fragment = (MyFragment) getSupportFragmentManager().findFragmentById(R.id.my_fragment_container); if (fragment != null) { fragment.onOptionsItemSelected(item); } return true; default: return super.onOptionsItemSelected(item); } } } ``` 在这个例子中,`MyFragment`和`MyActivity`都有一个选项菜单。当点击`MyActivity`的菜单项时,`MyActivity`会找到相应的`MyFragment`,然后调用`MyFragment`的`onOptionsItemSelected()`方法。 [2023-11-07 22:35:19 | AI问答 | 397点数解答]

相关提问