我是 android 的新手,不知道应该在哪里编写操作栏按钮的 actionlistner 代码,这样我就不需要在所有 Activity 中编写 action listner 代码。
请看下图:我有一个用于操作栏菜单的 menu.xml 文件,并通过 onCreateOptionMenu 函数添加到我的一个 Activity 中。当用户点击我的操作栏的任何按钮时,我可以通过 onOptionItemSelected 函数跟踪它。
问题 1:对于所有其他 Activity ,我可以使用相同的 menu.xml 文件,但我是否需要覆盖每个 Activity 的 onCreateOptionMenu 函数。
问题2:是否需要在所有activity中都写onOptionItemSelected函数代码?
请建议我更好地解决这些问题。
最佳答案
Problem-1: For all other activity, i can use same menu.xml file but do i need to override onCreateOptionMenu function of each activity.
Problem 2: Do i need to write onOptionItemSelected function code in all activity?
您可以创建一个“基础”Activity
并实现其中的方法。然后您需要做的就是确保所有其他 Activity
扩展“基础”Activity
。
示例(请注意,我使用 ActionBarSherlock,所以我的“基础”Activity
最初扩展了 ShelockFragmentActivity
- 这可能与您的情况不同,但这只是一个示例)。 .
public class MyBaseFragmentActivity extends SherlockFragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getSupportMenuInflater();
inflater.inflate(R.menu.my_menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
super.onOptionsItemSelected(item);
// Handle menu selection here
}
}
现在,任何扩展该“基”Activity
的 Activity
都将自动继承“基”类的菜单创建和项目选择方法。
public class ActivityA extends MyBaseFragmentActivity {
// No need to create the menu or handle item selection
}
关于android - 如何处理操作栏按钮监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16224011/