我们可以在 android 3.0 honeycomb 中将编辑文本作为菜单项吗

发布于 2024-12-18 21:48:27 字数 58 浏览 1 评论 0原文

我们可以在菜单中添加一个编辑文本框并显示在操作栏中吗 如果可以的话,我们如何获得此编辑文本的点击事件?

Can we have an edit text box inside our menu which gets displayed in the action bar
and if we can then how can we get click events on this edit text ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

初见终念 2024-12-25 21:48:27

我找到了解决方案。是这样完成的(仅适用于android 3.0 honeycomb)
将编辑文本放置在操作栏中
用于放置物品
在菜单 xml

android:actionLayout="@layout/search_bar"

定义编辑文本和 菜单项中使用此标签search_bar 布局中的按钮。

现在,为了吸引听众,请这样做 -
onCreateOptionsMenu()

et = (EditText) menu.findItem(R.id.search_bar).getActionView().findViewById(R.id.searchbar);        
findBtn = (ImageButton)menu.findItem(R.id.search_bar).getActionView().findViewById(R.id.find);

,然后为这些项目放置侦听器。它会工作得很好

I found the solution. It is done like this (only for android 3.0 honeycomb)
Placing an edit text in action bar
for placing the items
use this TAG in your item in the menu xml

android:actionLayout="@layout/search_bar"

define edit text & button in the search_bar layout.

Now for getting listeners on them do it like this -
in onCreateOptionsMenu()

et = (EditText) menu.findItem(R.id.search_bar).getActionView().findViewById(R.id.searchbar);        
findBtn = (ImageButton)menu.findItem(R.id.search_bar).getActionView().findViewById(R.id.find);

and then place listeners for these items. It will work fine

陌上青苔 2024-12-25 21:48:27

您可以将搜索栏添加到操作栏,但不能将其作为菜单项...您所说的“作为菜单项”是什么意思?

You can add a search bar to the action bar but not as a menu item... what do you even meen with "as a menu item"?

野味少女 2024-12-25 21:48:27

我还没有尝试过,但是你能从代码中使用actionlayout吗?这样你就可以使用这种方式获取文本框:

LayoutInflater inflater = (LayoutInflater) context.getSystemService(context.LAYOUT_INFLATER_SERVICE); 
LinearLayout wrapper = (LinearLayout) inflater.inflate(R.layout.random_layout, null); 
EditText editText = (EditText )wrapper.findViewById(R.id.edit); 

// 
//code to set the listener 
// 

// 
//set the android:actionLayout to wrapper etc. 
//

我在工作,所以我无法进行一些研究,所以这只是猜测......

I havent tried it but are you able to use actionlayout from code? in that way you could use get the Text box this way:

LayoutInflater inflater = (LayoutInflater) context.getSystemService(context.LAYOUT_INFLATER_SERVICE); 
LinearLayout wrapper = (LinearLayout) inflater.inflate(R.layout.random_layout, null); 
EditText editText = (EditText )wrapper.findViewById(R.id.edit); 

// 
//code to set the listener 
// 

// 
//set the android:actionLayout to wrapper etc. 
//

Im at work so I can't make some research so this is just speculations...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文