繁体   English   中英

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

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

我有一个非常简单的问题。 我已经在我的菜单中实现了搜索视图。 所以活动从扩展的搜索视图开始。 现在,当我按下后退按钮时,搜索视图首先折叠并返回上一个活动。

这是我的代码

@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;
}

但我不想在按下后退按钮时显示搜索视图折叠。 我想在不折叠搜索视图的情况下返回上一个活动。 我怎样才能做到这一点? 任何帮助表示赞赏。

覆盖您的活动中的 onBackPressed() 方法,然后将您的活动重定向代码放入该方法中。 这将解决您的问题。 快乐编码!

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

如果您没有在之前的活动中调用 finish() ,那么只需在 onBackPressed 方法中调用 finish() 即可。 这将破坏当前活动(搜索活动)并加载前一个活动。 否则你需要通过声明一个意图来通过通常的方式。

暂无
暂无

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

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