简体   繁体   English

如何转到上一个活动搜索视图后退按钮?

[英]How to go previous activity searchview back button?

I have a very simple question.我有一个非常简单的问题。 I have implemented searchview in my menu.我已经在我的菜单中实现了搜索视图。 So the activity starts with expanded searchview.所以活动从扩展的搜索视图开始。 And now when I press back button, the searchview first collapse and goes back to previous activity.现在,当我按下后退按钮时,搜索视图首先折叠并返回上一个活动。

Here's my code这是我的代码

@Override
public boolean onCreateOptionsMenu(final Menu menu) {
    getMenuInflater().inflate(R.menu.menu_search, menu);
    MenuItem searchItem = menu.findItem(R.id.action_search);
    searchItem.expandActionView();
    SearchView mSearchView = (SearchView) MenuItemCompat.getActionView(searchItem);
    mSearchView.setQueryHint(getString(R.string.search_hint));
    mSearchView.setIconifiedByDefault(false);
    mSearchView.setFocusable(true);
    mSearchView.setIconified(false);
    mSearchView.requestFocus();
    mSearchView.setGravity(Gravity.END);
    mSearchView.setTextDirection(View.TEXT_DIRECTION_RTL);
    //mSearchView.setLayoutParams(new Toolbar.LayoutParams(Gravity.END));
    //String searchQuery = getIntent().getStringExtra("SEARCH");
    //SearchActivity.this.myAdapter.filter(searchQuery);
    TextView searchText = mSearchView.findViewById(android.support.v7.appcompat.R.id.search_src_text);
    //searchText.setText(searchQuery);
    Typeface customFont = Typeface.createFromAsset(this.getAssets(), "fonts/font.ttf");
    searchText.setTypeface(customFont);
    try {
    ThaanaUtils.thaanafyTextViewSubclass(searchText, "fonts/faruma.ttf");
    }catch (IOException e){
        e.printStackTrace();
    }
    searchText.addTextChangedListener(new ThaanaTextWatcher());

    View xIcon = ((View) mSearchView.findViewById(R.id.search_plate));
    xIcon.setLayoutDirection(View.LAYOUT_DIRECTION_RTL);

    mSearchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
            @Override
            public boolean onQueryTextSubmit(String query) {
                return true;
            }

            @Override
            public boolean onQueryTextChange(String newText) {
                SearchActivity.this.myAdapter.filter(newText);
                return true;
            }
        });

    MenuItemCompat.setOnActionExpandListener(searchItem, new MenuItemCompat.OnActionExpandListener() {
            @Override
            public boolean onMenuItemActionExpand(MenuItem item) {
                return true;
            }

            @Override
            public boolean onMenuItemActionCollapse(MenuItem item) {
                onBackPressed();
                return true;
            }
        });

    return super.onCreateOptionsMenu(menu);
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    if (item.getItemId() == R.id.action_favorites) {
        //Intent newActivity = new Intent(SearchActivity.this,FavoritesActivity.class);
        //startActivity(newActivity);
    }
    return super.onOptionsItemSelected(item);
}

@Override
public void onBackPressed()
{
    finish();
}



@Override
public boolean onSupportNavigateUp() {
    onBackPressed();
    return true;
}

But I don't want to show searchview collapsing when pressed back button.但我不想在按下后退按钮时显示搜索视图折叠。 I want to go back to previous activity without collapsing searchview.我想在不折叠搜索视图的情况下返回上一个活动。 How can I achieve that?我怎样才能做到这一点? Any help is appreciated.任何帮助表示赞赏。

Override the onBackPressed() method in your activity and then put your activity redirection code inside the method.覆盖您的活动中的 onBackPressed() 方法,然后将您的活动重定向代码放入该方法中。 This will solve your problem.这将解决您的问题。 Happy coding!快乐编码!

@Override
public void onBackPressed() {
    // enter your activity redirection code here.
}

If you didn't call finish() on your previous activity, then just call finish() inside the onBackPressed method.如果您没有在之前的活动中调用 finish() ,那么只需在 onBackPressed 方法中调用 finish() 即可。 This will destroy the current activity(search activity) and will load previous one.这将破坏当前活动(搜索活动)并加载前一个活动。 Else you need to go through the usual way by declaring an intent.否则你需要通过声明一个意图来通过通常的方式。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM