我正在開發Android應用程序。爲此,我正在製作一項活動,讓您選擇您的國家,然後選擇該國家的一個地點。我有一個包含所有可用國家列表的微調器。現在,我想要做的是獲取已選擇的國家,然後篩選我已經選擇的國家/地區的項目列表。然後它應該把選定國家的景點變成一個不同的微調。只是爲了清楚起見,國家的名單只是一個國家的名單,和斑點的名單看起來像:使用數組中的特定條目填充微調器
國家1 - Spot1
國家1 - Spot2
COUNTRY2 - Spot1
COUNTRY2 - Spot2
依此類推。
這是我認爲的代碼應該像:
- 獲取選定的國家從1微調
- 使含有斑點一個新的ArrayList。
- 製作第二個空的ArrayList。
- 對於包含斑點的ArrayList的每個條目,檢查它是否從所選國家開始。
- 如果是這樣,請將其添加到第二個ArrayList。
- 完成這一切後,使用第二個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)是未定義的類型配置」
- 在字符串(內子),它說:「字符串不能得到解決」
我還是比較新的Android和我很難解決這個問題。任何人都可以幫助我嗎?
只是一個小小的更正。 'country.lastIndexOf(' - ')+ 1'應該是'country.lastIndexOf(' - ')+ 2',否則它將在' - '之後包含空格。 – sandyiscool
是的,對!說實話,我沒有真正測試代碼。 – florianmski
感謝您的回覆,您真的幫了大忙!它現在有效! – Zero