Android ActionBar后退按钮不工作
我有一个包含搜索视图的操作栏。当我想通过单击“搜索”按钮从列表视图中搜索某个内容时,操作栏左侧会显示“后退”按钮。如果在获取搜索列表后单击此后退按钮,则“搜索视图”和“后退”按钮将消失,但列表视图仅显示搜索的列表,而不是原始列表Android ActionBar后退按钮不工作,android,Android,我有一个包含搜索视图的操作栏。当我想通过单击“搜索”按钮从列表视图中搜索某个内容时,操作栏左侧会显示“后退”按钮。如果在获取搜索列表后单击此后退按钮,则“搜索视图”和“后退”按钮将消失,但列表视图仅显示搜索的列表,而不是原始列表 public class ActivityThree extends AppCompatActivity{ FloatingActionButton fab; DBHelper myDb; ArrayList<AccountDetails> rList; L
public class ActivityThree extends AppCompatActivity{
FloatingActionButton fab;
DBHelper myDb;
ArrayList<AccountDetails> rList;
ListView listView;
RemainderAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_three);
fab = (FloatingActionButton) findViewById(R.id.fab);
listView = (ListView) findViewById(R.id.listView);
myDb = new DBHelper(this);
showViews();
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(ActivityThree.this, ActivityFour.class));
}
});
}
private void showViews() {
rList = new ArrayList<AccountDetails>();
rList = myDb.getAllRows();
if (rList.size() != 0) {
adapter = new RemainderAdapter(this, rList);
listView.setAdapter(adapter);
listView.setTextFilterEnabled(true);
} else {
Toast.makeText(this,"There is no item in the list",Toast.LENGTH_SHORT).show();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu){
getMenuInflater().inflate(R.menu.menu_item,menu);
SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
final SearchView searchView = (SearchView) menu.findItem(R.id.search).getActionView();
searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
searchView.setIconifiedByDefault(false);
SearchView.OnQueryTextListener textChangeListener = new SearchView.OnQueryTextListener()
{
@Override
public boolean onQueryTextChange(String newText)
{
adapter.getFilter().filter(newText);
return true;
}
@Override
public boolean onQueryTextSubmit(String query)
{
adapter.getFilter().filter(query);
invalidateOptionsMenu();
return true;
}
};
searchView.setOnQueryTextListener(textChangeListener);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if(id==R.id.changePwd){
startActivity(new Intent(this, PwdChange.class));
return true;
}
if(id==R.id.about){
startActivity(new Intent(this, ActivityAbout.class));
return true;
}if(id==R.id.share){
try
{ Intent i = new Intent(Intent.ACTION_SEND);
i.setType("text/plain");
i.putExtra(Intent.EXTRA_SUBJECT, "ABCD");
String sAux = "\nLet me recommend you this application\n\n";
i.putExtra(Intent.EXTRA_TEXT, sAux);
startActivity(Intent.createChooser(i, "Choose any one"));
}
catch(Exception e)
{
}
}
if(id==R.id.exit){
android.os.Process.killProcess(android.os.Process.myPid());
System.exit(0);
}
return super.onOptionsItemSelected(item);
}
公共类活动三扩展AppCompatActivity{
浮动操作按钮;
DBHelper myDb;
ArrayList-rList;
列表视图列表视图;
剩余适配器;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_三);
fab=(FloatingActionButton)findViewById(R.id.fab);
listView=(listView)findViewById(R.id.listView);
myDb=新的DBHelper(this);
showview();
fab.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
startActivity(新意图(activity3.this,ActivityFour.class));
}
});
}
私有void showViews(){
rList=新的ArrayList();
rList=myDb.getAllRows();
如果(rList.size()!=0){
适配器=新的剩余适配器(此,rList);
setAdapter(适配器);
setTextFilterEnabled(true);
}否则{
Toast.makeText(这个“列表中没有项目”,Toast.LENGTH_SHORT.show();
}
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
getMenuInflater().充气(右菜单菜单项,菜单);
SearchManager SearchManager=(SearchManager)getSystemService(Context.SEARCH\u服务);
final SearchView SearchView=(SearchView)menu.findItem(R.id.search).getActionView();
searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName());
searchView.setIconifiedByDefault(false);
SearchView.OnQueryTextListener textChangeListener=新建SearchView.OnQueryTextListener()
{
@凌驾
公共布尔onQueryTextChange(字符串newText)
{
adapter.getFilter().filter(newText);
返回true;
}
@凌驾
公共布尔值onQueryTextSubmit(字符串查询)
{
adapter.getFilter().filter(查询);
无效操作菜单();
返回true;
}
};
setOnQueryTextListener(textChangeListener);
返回super.onCreateOptions菜单(菜单);
}
@凌驾
公共布尔值onOptionsItemSelected(菜单项项){
int id=item.getItemId();
if(id==R.id.changePwd){
startActivity(新意图(本,PwdChange.class));
返回true;
}
if(id==R.id.about){
startActivity(新意图(此,ActivityAbout.class));
返回true;
}if(id==R.id.share){
尝试
{Intent i=新意图(Intent.ACTION\u SEND);
i、 setType(“文本/普通”);
i、 putExtra(Intent.EXTRA_主题“ABCD”);
String sAux=“\n请让我向您推荐此应用程序\n\n”;
i、 putExtra(Intent.EXTRA_TEXT,sAux);
startActivity(Intent.createChooser(i,“选择任何一个”);
}
捕获(例外e)
{
}
}
if(id==R.id.exit){
android.os.Process.killProcess(android.os.Process.myPid());
系统出口(0);
}
返回super.onOptionsItemSelected(项目);
}
}这是一段工作代码,当单击
searchView的
back按钮时,它会显示一个祝酒词
@Override
public boolean onCreateOptionsMenu(Menu menu){
getMenuInflater().inflate(R.menu.menu_item,menu);
SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
final SearchView searchView = (SearchView) menu.findItem(R.id.search).getActionView();
searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
searchView.setIconifiedByDefault(false);
MenuItem searchItem = menu.findItem(R.id.action_search);
MenuItemCompat.setOnActionExpandListener(searchItem, new MenuItemCompat.OnActionExpandListener() {
@Override
public boolean onMenuItemActionExpand(MenuItem item) {
return true;
}
@Override
public boolean onMenuItemActionCollapse(MenuItem item) {
Toast.makeText(MainActivity.this," Back Button Clicked",Toast.LENGTH_LONG).show();
showViews();
return true;
}
});
SearchView.OnQueryTextListener textChangeListener = new SearchView.OnQueryTextListener()
{
@Override
public boolean onQueryTextChange(String newText)
{
adapter.getFilter().filter(newText);
return true;
}
@Override
public boolean onQueryTextSubmit(String query)
{
adapter.getFilter().filter(query);
invalidateOptionsMenu();
return true;
}
};
searchView.setOnQueryTextListener(textChangeListener);
return super.onCreateOptionsMenu(menu);
}
如何通过单击此后退按钮获取原始列表?再次感谢您设置listadapter。欢迎使用stackoverflow!也发布你的代码。你使用工具栏小部件了吗?@Masum,不,我没有使用工具栏小部件,我将此代码放在了OnCreateOptions菜单中。但它不起作用。请说明我将此代码(你发送的)放在了哪里。我发布了我的代码。请检查我是否更新了我的代码。当搜索视图展开并单击“上一步”按钮时,将调用
showViews()
,整个数据集的同一适配器将附加到列表中。但它不工作。我已发布了我的代码。请在我的OnCreateOptions菜单(菜单菜单)中设置您的代码,如果您能将项目发送给我,请提前向我表示感谢droidwithme@gmail.com我会在测试中找到答案,并在这里发布答案。然后在哪里设置我的SearchView.OnQueryTextListener