文字列配列を検索し、結果を ListView に取得したいと考えています。
だから、もし私が持っているなら
<string-array name="Colors">
<item>Red</item>
<item>Yellow</item>
<item>Blue</item>
<item>DarkRed</item>
</string>
「赤」を検索すると、ListView の 2 つの項目に入る必要があります。項目ごとに、文字列配列への ID と、ListView に表示される文字列値を知りたいと思います。
結果を検索している間、すべてが終了すると消える ProgressBar (不確定なステータス) を表示したいと思います。
最初のステップは、文字列配列を List または String[] に取得してから、配列の各項目を比較する新しい Thread を作成し、検索テキストに一致するものを 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" />
あなたのすべての提案と助けに感謝します!