Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.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
如何将searchview文本从操作栏传递到新活动?在android中_Android_Android Intent_Android Actionbar_Searchview - Fatal编程技术网

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

如何将searchview文本从操作栏传递到新活动?在android中,android,android-intent,android-actionbar,searchview,Android,Android Intent,Android Actionbar,Searchview,我是否应该编写一个新方法,从searchview中获取查询,然后传递 它取决于使用意图?如 public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); searchView = (SearchView)menu .findItem(R.id.action_search).getActionView();

我是否应该编写一个新方法,从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;
} 
(或)

我应该在MainActivity的OnCreate方法中写入吗

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

尝试使用此代码

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);
     }
使用从Serch_结果活动获取输入

Intent in = new Intent(this , Search_result.class);
in.putExtra("tag",input);
startActivity(in);
这样试试
如下所示设置搜索文本侦听器

在意向中传递搜索文本

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;
} 
更新

使用下面的代码在
search\u result.java
onCreate()
中获取seachtext,并将其传递给要根据sarchText执行任何操作的方法

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

谢谢@savepopulation的编辑:)谢谢你的回答:)这对我来说仍然不起作用……让我解释一下,当用户单击时,操作栏中有一个searchview,它会打开并接受输入。输入后,当用户点击android键盘上的搜索图标或按enter键时,应该会得到输入的文本,并将其传递给新活动,在新活动中,特定功能通过intentHello获得该文本。先生,我的编码方式与您提到的相同,我得到的文本非常完美。我还有一个问题-在上面提到的问题之后,我在search_result.java中有一个方法,因此我需要在该方法中使用此输入来执行操作。感谢您的回答:)这对我仍然不起作用…让我解释一下,当用户单击时,操作栏中有一个searchview,它将打开并接受输入。输入后,当用户单击android键盘上的搜索图标或按enter键时,应获得输入的文本,并将其传递给新活动,其中特定功能通过intent获得该文本
public void getInput(String searchText)
    {
        Intent in = new Intent(this, search_result.class);
        in.putExtra("TITLE", searchText);
        startActivity(in);
     }
String searchText = getIntent().getStringExtra("TITLE");