在我的应用程序中,有五个活动包含很长的文本。我想在我的活动中添加查找工具,这样当用户向搜索栏输入内容时,如果活动包含该单词,则该单词应自动滚动到顶部突出显示。我可以调用搜索对话框(按照说明)在Android Developer页面中)。你能帮助我将搜索对话框中的输入与我活动中的文本进行比较并将其滚动到顶部吗?
MainActivity.java
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.search:
onSearchRequested(); //opens the search dialog
break;
return super.onOptionsItemSelected(item);
}
SearchableActivity.java
public class SearchableActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.search);
//Get the intent, verify the action and get the query
Intent intent = getIntent();
if (intent.ACTION_SEARCH.equals(intent.getAction())) {
String query = intent.getStringExtra(SearchManager.QUERY);
doMySearch(query);
}
}
private void doMySearch(String query) {
//what to do here???
}
}
此处可搜索的活动是一项不同的活动。如何将搜索输入与另一个活动(MainActivity.java)中的文本进行比较?
答案 0 :(得分:0)
您要做的是:
应该没有什么方法可以这样做,我建议一个简单的方法:
要将某些内容存储到全局变量,您可以使用 SharedPreference方法: Android Shared preferences example
此方法存储将值指定到全局变量中,其中所有活动都可以访问,并且仅在您命令删除之前永久存储。类似于网站的“会话”。
在您的情况下,我将通过以下方式使用共享偏好:
有关您的信息:
共享首选项对于存储用于永久使用应用程序的值非常有用,其范围涵盖应用程序中的所有活动。您可以对它进行很好的控制,因为您可以随时指定存储,重写,删除值。
希望这会有帮助。