Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/196.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android ActionBar后退按钮不工作_Android - Fatal编程技术网

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