我正在制作我的第一个 Android 应用程序,但我遇到了一个问题。 我有超过 8 个不同的类,它们都使用相同的操作栏。 现在我想在我的其他类中调用主类的方法,而不是在每个不同的类中调用方法(并且有很多双重代码)。
这是我在 main.java 中的 onOptionsItemSelected 代码的一部分
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle presses on the action bar items
switch (item.getItemId()) {
case R.id.actionbar_new_income:
Intent newIncome = new Intent(this, NewIncome.class);
this.startActivity(newIncome);
return true;
}
}
现在我想知道如何在另一个类 (newIncome.java) 中调用该方法 到目前为止我有这个,但它一直说我需要添加参数。我当然需要能够检测到单击了哪个菜单项..
MainActivity main = new MainActivity();
main.onOptionsItemSelected();
有什么帮助吗? 谢谢!
最佳答案
你不应该这样做。如果您有通用代码,则将其放在一个类(而不是 Activity )中,任何需要它的 Activity 都可以访问该类。
你仍然会有一些重复,但这是正常的。
减少 Activity 启动代码的一个好方法是为每个 Activity 添加一个静态方法,您可以调用该方法来启动它所在的 Activity 。
例如,在您的 NewIncome
Activity 中您可以拥有
Public static void Launch(Context c) {
Intent newIncome = new Intent(c, NewIncome.class);
C.startActivity(newIncome);
}
然后您可以通过调用从任何其他 Activity 启动此 Activity
NewIncome.Launch(this);
如果需要,您可以向方法添加参数,然后使用这些参数将 Extras 添加到 Activity。
关于android - 如何在其他类中从 MainActivity 调用(和使用)onOptionsItemSelected,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19344767/