gpt4 book ai didi

java - 如何搜索存储在 XML 文件中的字符串的内容?

转载 作者:行者123 更新时间:2023-11-29 21:47:45 25 4
gpt4 key购买 nike

我是 Android 开发的新手。

我有一个包含一堆 fragment 的 Activity ,每个 fragment 显示不同的文本。我在运行时从 strings.xml 设置文本(即 tv.setText...)

这是我的 strings.xml 的示例:

<string name="string1">the content I want searched, text1</string>
<string name="string2">the content I want searched, text2</string>
<string name="string3">the content I want searched, text3</string>

这是我的问题:
我想在应用程序中添加搜索功能,我希望能够在字符串中搜索单词并将整个字符串作为结果返回给用户。因此,例如,如果用户搜索 text2,它将返回整个字符串。

我已经在这里阅读了关于 android-developers 的搜索指南:http://developer.android.com/guide/topics/search/index.html

我还找到了一堆教程,但它们似乎都在处理存储在 SQLite 数据库中的数据。

这是我的更多代码:
可搜索的.xml:

<?xml version="1.0" encoding="utf-8"?>
<searchable xmlns:android="http://schemas.android.com/apk/res/android"
android:label="@string/app_name"
android:hint="Search" >
</searchable>

可搜索 Activity :

public class SearchableActivity extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.search);

handleIntent(getIntent());
}


@Override
protected void onNewIntent(Intent intent) {
setIntent(intent);
handleIntent(intent);
}



private void handleIntent(Intent intent) {
if (Intent.ACTION_SEARCH.equals(intent.getAction())) {
String query = intent.getStringExtra(SearchManager.QUERY);
doMySearch(query);
}
}

private void doMySearch(String query) {
}

}

任何帮助将不胜感激

P.S 这是最好的方法吗?我有很多字符串(> 1000)我阅读了有关使用数据库的信息,但我不知道如何将我的所有数据转换为数据库,也不知道如何从数据库设置文本...等等

最佳答案

我认为您需要使用 key 在 strings.xml 文件中搜索,如果我理解您的话,这里就是答案。

strings.xml

<string name="string1">the content I want searched, text1</string>

在strings.xml中搜索的方法

private String SearchForString(String message){
// get the resource id if matched any key in strings
// message Passed string you want search for
// "string" type of what you looking for
// package name

try {
int resId = getResources().getIdentifier(message , "string" , getPackageName());
String stringReturned = getResources().getString(resId);
return stringReturned;
} catch(Exception e){
return null;
}
}

现在调用方法

SearchForString("string1");

它应该返回:我要搜索的内容,text1

关于java - 如何搜索存储在 XML 文件中的字符串的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15321806/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com