如何将searchview文本从操作栏传递到新活动?在android中

时间:2017-07-14 11:14:09

标签: android android-intent android-actionbar searchview

public boolean onCreateOptionsMenu(Menu menu) {
       getMenuInflater().inflate(R.menu.main, menu);
       searchView = (SearchView)menu
            .findItem(R.id.action_search).getActionView();   
       SearchManager searchManager = 
            (SearchManager)getSystemService(SEARCH_SERVICE);
       searchView.setSearchableInfo(
             searchManager.getSearchableInfo(getComponentName()));
       return true;
} 

我应该编写新的方法,我从searchview获取查询然后传递    它使用Intent?喜欢

public void getInput()
    {
      String input = (String)searchView.getQuery();

      Intent in = new Intent(this, search_result.class);
      //TITLE is an instance variable
      //public static final String TITLE = "title";
        in.putExtra(TITLE, input);
        startActivity(in);
     }

(OR)

我应该使用MainActivity的OnCreate方法吗?

(顺便说一下,我在导航抽屉的content_main.xml中有searchview 活动,我需要从这里获取输入并将其传递给另一个活动 的TextView)

2 个答案:

答案 0 :(得分:1)

  

尝试这种方式
  设置搜索文字听众如下

public boolean onCreateOptionsMenu(Menu menu) {
       getMenuInflater().inflate(R.menu.main, menu);
       searchView = (SearchView)menu
            .findItem(R.id.action_search).getActionView();   
       SearchManager searchManager = 
            (SearchManager)getSystemService(SEARCH_SERVICE);
       searchView.setSearchableInfo(
             searchManager.getSearchableInfo(getComponentName()));

 searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
            @Override
            public boolean onQueryTextSubmit(String query) {
               getInput(query);
                return false;
            }

            @Override
            public boolean onQueryTextChange(String newText) {

                return false;
            }
        });
       return true;
} 

在Intent中传递searchText

public void getInput(String searchText)
    {
        Intent in = new Intent(this, search_result.class);
        in.putExtra("TITLE", searchText);
        startActivity(in);
     }

<强>更新

使用下面的代码在onCreate()的{​​{1}}中获取seachtext,并将其传递给您希望根据sarchText执行任何操作的方法

search_result.java

答案 1 :(得分:0)

尝试使用此代码

Intent in = new Intent(this , Search_result.class);
in.putExtra("tag",input);
startActivity(in);

使用

从Serch_result活动获取输入
getIntent().getExtras().getString("tag");