現在、このメソッドを使用してリストの結果をフィルタリングしています。私はデータを表示するスピナーを持っている、私はリストビューを選択されたデータでフィルタリングしたい。スピンナーでアイテムを選択したときのリストビューの更新
String[] finalArray = new String[gameData.size()];
finalArray = gameData.toArray(finalArray);
// finalArray contains the selection for the spinner
final ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, android.R.id.text1, finalArray);
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
selection = (String)spinner.getSelectedItem();
for(String str: oldList) {
if(str.trim().contains(selection))
gameData.add(str);
}
finalArray = new String[gameData.size()];
finalArray = gameData.toArray(finalArray);
arrayAdapter.notifyDataSetChanged();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
私は選択がなされているが、それは現在、何もしません一度listView.setAdapter(arrayAdapter)
は、リストを更新すると仮定。
選択内容を文字列に設定しました。次に、oldList
に文字列選択が含まれているかどうかを確認します。次に、oldListを通過してselection
と一致する場合は、gameData
(フィルタリングされた結果と見なされます)という新しいリストに入れます。それが配列に変換され、一致する場合はリストビューにロードされます。
'finalArray = gameData.toArray(finalArray);'行は何をしますか?空の配列(finalArray)をArrayAdapterに渡しているようですね? 'gameData'の内容を表示してください。 – ishmaelMakitla
'gameData'はリストです。私はこのコードの前にいくつかの文字列を分割します。 'gameData 'の内容は' finalArray'の配列に変換されます。空の配列ではありません。 – Jed5931
@ishmaelMakitla質問を更新しました – Jed5931