如何将searchview文本从操作栏传递到新活动?在android中
我是否应该编写一个新方法,从searchview中获取查询,然后传递 它取决于使用意图?如如何将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();
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");