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)
答案 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");