ArrayAdapterの文字列イテレータの値を追加しようとしていますが、正しい結果が得られません。ここに私のコードです:ArrayAdapterに文字列反復子値を追加する方法は?
Spinner copyFromCity = (Spinner) findViewById(R.id.spinner);
// Create an ArrayAdapter using the string array and a default spinner layout
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
R.array.predefined_cities, android.R.layout.simple_spinner_item);
// Add values from our custom cities onto the Adapter via SharedPreferences
prefs = getSharedPreferences(MY_PREFS_NAME, Context.MODE_PRIVATE);
Iterator<String> userCities = readCitiesFromPref();
while(userCities.hasNext()){
adapter.add(userCities.next());
}
// Specify the layout to use when the list of choices appears
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// Apply the adapter to the spinner
copyFromCity.setAdapter(adapter);
スピナーが唯一の方法readCitiesFromPref()から来て、私の県ファイルからの値ではなく、余分な文字列値を示しています。
私はすでに返されたイテレータ文字列に値があることを確認しました。デバッグモードでは、私が「これはアダプタが好みから持っている既存のmObjectsに
おかげ
が追加されていないことを確認することができメートル編集:私はそれことを維持するものの、要求どおりreadCitiesFromPref()メソッドを追加します戻り値が正確であると予想されるように、文字列のイテレータを持っているので無関係です:
protected Iterator<String> readCitiesFromPref() {
// See if preferences store this
JSONObject citiesList = null;
Iterator<String> userCities = null;
try {
// Yes, so get the values out
citiesList = new JSONObject(prefs.getAll());
userCities = citiesList.keys();
while (userCities.hasNext()) {
Log.i("Ram = ", userCities.next());
}
} catch (NullPointerException e1) {
//
}
return userCities;
}
たちは、私は繰り返しを行わずuserCitiesを返すとき 'readCitiesFromPref()'メソッド残念ながら – Petro