gpt4 book ai didi

android - 处理单击图标菜单项

转载 作者:行者123 更新时间:2023-11-29 21:48:48 24 4
gpt4 key购买 nike

我看到可以处理图标菜单项上的点击或通过实现

onOptionsItemSelected

在 Activity 中,或通过使用

onMenuItemClickListener

就像按钮上的 onclick 监听器。什么时候使用第一种方法更好,什么时候使用第二种方法?因为在我看来,使用外部监听器会使代码更加模块化,但会创建一个新类,但使用第一种方式不会创建新类,但会使代码模块化程度降低...

最佳答案

除了下面列出的用例之外,还有其他用例,但我将定期出现的一般用例放在一起。

onOptionsItemSelected

如果您使用 Fragment s,你可能想使用 onOptionsItemSelected并考虑按照 Adding items to the Action Bar 中描述的方式将菜单项添加到操作栏 .

这描述的是实现 onCreateOptionsMenu在你的里面Fragment .为此,您必须调用 setHasOptionsMenuonCreate .

protected void onCreate(Bundle savedInstanceState) {
this.setHasOptionsMenu(true);
}

设置这个实际上会使Activity调用onCreateOptionsMenu这允许您添加菜单项。

@Override
public boolean onCreateOptionsMenu(Menu menu){
super.onCreateOptionsMenu(menu);

// add items corresponding to this Fragment
menu.add(...);

return true;
}

我推荐这个的原因是它允许您将更多菜单处理代码放入您的 Fragment 中而不是 Activity找出哪个Fragment打电话等

在这种情况下,单击菜单项将调用 onOptionsItemSelected在你的 Fragment 里面我建议。

@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.my_id1:
dothing1();
return true;
case R.id.my_id2:
dotghing2();
return true;
default:
return super.onOptionsItemSelected(item);
}
}

更多的是冗长的答案,但这是处理 Fragment 中的菜单点击的方式。 .

onMenuItemClickListener

onMenuItemClickListener的情况下,当您不想使用上面的预准备方法并实现您自己的方法时,可以使用它。

我的意思是你实现 OnMenuItemClickListener并在接口(interface)中生成方法。然后您分配菜单以调用 Activity在上面的选项中实现了这个假设 Activity基于 Activity 的预准备实现使用至 Fragment关系。

关于android - 处理单击图标菜单项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15008874/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com