我想搜索一个字符串数组并将结果放入 ListView。
所以,如果我有
<string-array name="Colors">
<item>Red</item>
<item>Yellow</item>
<item>Blue</item>
<item>DarkRed</item>
</string>
我搜索“红色”,我应该进入 ListView 两个项目。对于每个项目,我想知道字符串数组中的 ID 和字符串值,它们将显示在 ListView 中。
在搜索结果时,我想显示一个 ProgressBar(不确定状态),当一切完成时它会消失。
第一步是将字符串数组放入 List 或 String[],然后创建一个新线程来比较数组中的每个项目,并将匹配搜索文本的项目放在 ListView 上。
我不知道这是最好的方法。我的代码是这样的:
public class SearchActivity extends Activity {
private ProgressBar mProgress;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.search);
mProgress = (ProgressBar) findViewById(R.id.Progress);
new Thread(new Runnable() {
public void run() {
int item_pos = 0;
int item_count = 0;
String[] Colors = getResources().getStringArray(R.array.Colors);
item_count = Colors.length();
mProgress.setVisibility(View.VISIBLE);
while (item_pos < item_count) {
// Compare with the search text
// Add it to the ListView (I don't know how)
item_pos +=1;
}
mProgress.setVisibility(View.GONE);
}
}).start();
}
}
所以,我的问题:
- 如何获取项目 ID 和字符串,然后将每个文本值与搜索文本进行比较?
- 如何将项目添加到 ListView?
为什么 ProgressBar 不可见?ProgressBar XML 代码是这样的:
<ProgressBar android:id="@+id/Progress" style="@android:style/Widget.ProgressBar.Small" android:layout_width="fill_parent" android:layout_height="wrap_content" android:indeterminate="true" android:visibility="visible" />
感谢您的所有建议和帮助!