私はAndroid用のアプリケーションに取り組んでいます。このために、国を選択してからその国のスポットを選択するアクティビティを作成しています。利用可能なすべての国のリストを含む 1 つのスピナーがあります。今、私がやりたいことは、選択された国を取得し、選択された国で始まるアイテムのために私が持っているスポットのリストをフィルタリングすることです. 次に、選択した国のスポットを別のスピナーに配置する必要があります。わかりやすくするために、国のリストは単なる国のリストであり、スポットのリストは次のようになります。
国 1 - スポット 1
国 1 - スポット 2
国 2 - スポット 1
国 2 - スポット 2
等々。
これは、コードが次のように機能するはずだと私が考えたものです。
- スピナー 1 から選択した国を取得します。
- スポットを含む新しい ArrayList を作成します。
- 2 つ目の空の ArrayList を作成します。
- スポットを含む ArrayList の各エントリについて、選択した国で始まるかどうかを確認します。
- その場合は、2 番目の ArrayList に追加します。
- これがすべて完了したら、2 番目の ArrayList で ArrayAdapter を作成します。
- この ArrayAdapter をスピナー 2 に設定します。
私は次のコードでこれを達成しようとしました:
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
String selectedCountry = parent.getItemAtPosition(pos).toString();
ArrayList<CharSequence> arraylist = new ArrayList<CharSequence>();
arraylist.addAll(R.array.spots_array);
ArrayList<CharSequence> arraylist2 = new ArrayList<CharSequence>();
for (i=0; i<arraylist.size(); i++) {
String delimiter = " - ";
if ((arraylist(i).split(delimiter)).equals(selectedCountry)) {
arraylist2.add(arraylist(i).string.substring(string.lastIndexOf('-') + 1));
}
}
ArrayAdapter<CharSequence> arrayAdapter2 = ArrayAdapter.createFromResource(this, arraylist2<CharSequence>, android.R.layout.simple_spinner_item);
arrayAdapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner2.setAdapter(arrayAdapter2);
spinner2.setOnItemSelectedListener(this);
}
ただし、いくつかのエラーが発生します。
- addAll() では、「ArrayList 型のメソッド addAll(int, Collection) は、引数 (int) には適用できません」と表示されます。
- arraylist には、「メソッド arraylist(int) は、タイプ Configuration に対して未定義です」と書かれています。
- 文字列(部分文字列内)で、「文字列を解決できません」と表示されます
私はまだAndroidに比較的慣れていないため、これを機能させるのに多くの問題を抱えています。誰でも私を助けてもらえますか?