gpt4 book ai didi

Android ActionBar 搜索字段

转载 作者:行者123 更新时间:2023-11-30 03:12:45 25 4
gpt4 key购买 nike

我的 ActionBar 中有一个标准搜索 EditText,通过触摸一个放大镜小图标触发。我可以使用 OnQueryTextListener 缓存用户的搜索字符串。当用户第二次触摸该图标时,我想将该字符串放回 EditText。

我正在使用 ABS(即将放弃),目标是 8-19。

我该怎么做?

最佳答案

使用普通操作栏(您必须找到 ABS 的不同变体,不确定我的回答是否完全适用于该库)。

SearchView 是一个可以在选项菜单中展开的小部件,所以我所做的是使用包含操作 View 的 XML 展开菜单:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >

<item
android:id="@+id/search_user"
android:actionViewClass="android.widget.SearchView"
android:icon="@drawable/magnifing_glass"
android:showAsAction="ifRoom|collapseActionView"
android:title="Search Users"/>

</menu>

接下来,在展开操作 View 时,设置您的监听器,并使用全局变量来保存之前的搜索。

public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.search_menu, menu);


MenuItem search = menu.findItem(R.id.search_user);

//Keep a global variable of this so you can set it within the next listener
SearchView user_search = (SearchView) search.getActionView();

user_search.setOnQueryTextListener(new OnQueryTextListener() {

@Override
public boolean onQueryTextSubmit(String query) {
global_variable = query;
return true;
}

@Override
public boolean onQueryTextChange(String text) {
return true;
}
});

最后,在第二个监听器中,当操作 View 展开时,将全局变量的文本设置为您之前的查询。

//This is set on the menu item
search.setOnActionExpandListener(new OnActionExpandListener() {
@Override
public boolean onMenuItemActionCollapse(MenuItem item) {
// Do something when collapsed
return true; // Return true to collapse action view
}
@Override
public boolean onMenuItemActionExpand(MenuItem item) {
user_search.setQuery(global_variable, false);
return true; // Return true to expand action view
}
});

关于Android ActionBar 搜索字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20665334/

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