Значения спиннинга не установлены правильно

Я получаю данные из онлайн-URL веб-сайта XML и получаю данные успешно. Я использую ключ hashmap и значение из него … и ключ и значения, которые я получаю, похожи на приведенные ниже в моем LOGCAT-

{ Jackfruit=[Cabbage, Kesar, Amond], Date=[van, hall, Brinjal], Amond=[hall, van, Brinjal] } 

1. Когда я впервые запускаю приложение для Android, spinner и spinner2 заполняются в spinner, все данные заполняются правильно, но в spinner2 все значения ключей отображаются … но он должен показывать только значения отображения ключа в spinner1

2. Элемент списка в обоих прядильщиках отображается правильно, когда я изменяю значение ключа spinner1, а затем все выпадающие списки показывают правильные значения.

3. Когда я нажимаю на значение spinner2, он действует как ключ и начинает показывать значение в spinner, вместо этого он должен поместить это значение, которое я нажимаю.

Я набросал его в блокнот, посмотрев на проблему

 { Jackfruit=[Cabbage, Kesar, Amond], Date=[van, hall, Brinjal], Amond=[hall, van, Brinjal] } 

Проблемный эскиз

И мой код ниже MainActivity.java

 @SuppressLint("NewApi") public class MainActivity extends Activity implements AdapterView.OnItemSelectedListener, OnClickListener { ArrayList<String> title; ArrayList<String> title2; Button button; Spinner spinner; Spinner spinner2; private EditText FromFruitsDateEtxt; //private EditText toDateEtxt; private DatePickerDialog FromFruitsDatePickerDialog; //private DatePickerDialog toDatePickerDialog; private SimpleDateFormat dateFormatter; ArrayAdapter<String> FromFruits_adapter; ArrayAdapter<String> FromFruits_adapter2; Map<String, List<String>> values = new HashMap<String, List<String>>(); @TargetApi(Build.VERSION_CODES.GINGERBREAD) @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); title = new ArrayList<String>(); title2 = new ArrayList<String>(); button = (Button) findViewById(R.id.button1); spinner = (Spinner) findViewById(R.id.spinner1); spinner.setOnItemSelectedListener(this); spinner2 = (Spinner) findViewById(R.id.spinner2); spinner2.setOnItemSelectedListener(this); dateFormatter = new SimpleDateFormat("dd-MM-yyyy", Locale.US); findViewsById(); setDateTimeField(); if (android.os.Build.VERSION.SDK_INT > 9) { StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy); } button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { parse(); FromFruits_adapter=new ArrayAdapter<String>(getBaseContext(), android.R.layout.simple_spinner_item, title); FromFruits_adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); FromFruits_adapter2 = new ArrayAdapter<String>(getBaseContext(), android.R.layout.simple_spinner_item, title2); FromFruits_adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spinner.setAdapter(FromFruits_adapter); FromFruits_adapter2.clear(); FromFruits_adapter2.notifyDataSetChanged(); spinner2.setAdapter(FromFruits_adapter2); } private Object FromFruits_adapter(int i) { // TODO Auto-generated method stub return null; } }); } public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) { String lang_Name = parent.getItemAtPosition(pos).toString(); List<String> lang_Key = values.get(lang_Name); FromFruits_adapter2.clear(); for(String s : lang_Key){ FromFruits_adapter2.insert(s, FromFruits_adapter2.getCount()); } FromFruits_adapter2.notifyDataSetChanged(); Toast.makeText(parent.getContext(), ""+lang_Key, Toast.LENGTH_LONG).show(); } public void onNothingSelected(AdapterView<?> arg0) { } protected void parse() { try { URL url = new URL("web url www.xyz.xml"); DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); Document doc = db.parse(new InputSource(url.openStream())); doc.getDocumentElement().normalize(); NodeList nodeList = doc.getElementsByTagName("Fruits"); for (int i = 0; i < nodeList.getLength(); i++) { Element el = (Element) nodeList.item(i); // get the a:W value String awValue = el.getElementsByTagName("FromFruits").item(0).getTextContent(); // add the above value in our map as key if it isn't present in the map, this key will // have a list associated with it in which ALL the values for a:R will be stored, if // the awValue key is present then you just add the new a:R value to its list if (!values.containsKey(awValue)) { values.put(awValue, new ArrayList<String>()); } // also add the value pointed by a:R to the list associated with a:W String arValue = el.getElementsByTagName("ToFruits").item(0).getTextContent(); values.get(awValue).add(arValue); // Log.d("ADebugTag", "Value: " + arValue); } Log.d("ADebugTag", "Value: " + values); for (int i = 0; i < nodeList.getLength(); i++) { Node node = nodeList.item(i); Element fstElmnt = (Element) node; NodeList nameList = fstElmnt.getElementsByTagName("FromFruits"); Element nameElement = (Element) nameList.item(0); nameList = nameElement.getChildNodes(); NodeList websiteList = fstElmnt.getElementsByTagName("ToFruits"); Element websiteElement = (Element) websiteList.item(0); websiteList = websiteElement.getChildNodes(); title.add(((Node) nameList.item(0)).getNodeValue()); } NodeList nodeList2 = doc.getElementsByTagName("Fruits"); for (int i = 0; i < nodeList2.getLength(); i++) { Node node = nodeList2.item(i); Element fstElmnt = (Element) node; NodeList nameList = fstElmnt.getElementsByTagName("ToFruits"); Element nameElement = (Element) nameList.item(0); nameList = nameElement.getChildNodes(); title2.add(((Node) nameList.item(0)).getNodeValue()); } Set<String> set = new LinkedHashSet<String>(title); title = new ArrayList<String>(set); // Collection<String> set = new LinkedHashSet<String>(months); Set<String> set2 = new LinkedHashSet<String>(title2); title2 = new ArrayList<String>(set2); System.out.println("list are"); System.out.println(set); System.out.println("list 2 are"); System.out.println(set2); } catch (Exception e) { System.out.println("XML Pasing Excpetion = " + e); } } @Override public void onClick(View view) { if(view == FromFruitsDateEtxt) { FromFruitsDatePickerDialog.show(); } else { Log.d("errorrrr", "soryy"); } } } 

Проблема в эскизе может быть видна

Введите описание изображения здесь

Я решил это сам, и один из моих друзей Рикардо Баррока из stackoverflow посмотрел на мои комментарии к заявлениям

 spinner.setOnItemSelectedListener(this); spinner2 = (Spinner) findViewById(R.id.spinner2); //spinner2.setOnItemSelectedListener(this); 

Это решило мою проблему spinner2 щелчка, которая извлекала значения, вместо того, чтобы заставить себя устанавливать счетчик.

И из кода ниже он очистил предварительно заполненные значения до spinner1 и spinner2

 from_adapter=new ArrayAdapter<String>(getBaseContext(),android.R.layout.simple_spinner_item, title); from_adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); title2.clear(); from_adapter2=new ArrayAdapter<String>(getBaseContext(),android.R.layout.simple_spinner_item, title2); from_adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spinner.setAdapter(from_adapter); //from_adapter2.clear(); //from_adapter2.notifyDataSetChanged(); spinner2.setAdapter(from_adapter2); 
Intereting Posts
Добавить onclick-прослушиватель в предопределенную кнопку? Воспроизведение opus-кодека на Android Не удалось развернуть устройство при развертывании приложения cordova на подключенном устройстве Скользящая вкладка с нарушениями фрагментов со второго тайма Предварительный просмотр камеры Android с использованием кода Grafika CameraCapture Вызов функции getInstance () Firebase Analytic каждый раз против хранения экземпляра как статической переменной в классе Application Скрыть мягкую клавиатуру при загрузке приложения Невозможно выполнить прокрутку в ListView в swipeRefreshLayout Как узнать, действительно ли приложение Android действительно утечки памяти? Вкладка Logcat в Eclipse DDMS Persepctive (плагин Android ADT) продолжает заполняться пустым Начать работу внутри onReceive BroadcastReceiver Код Auto Increment версии в IntelliJ IDEA (Android) Как добавить «приложение ParsePushBroadcastReceiver.getActivity» в приложение? Обнаружение типа Android Wear – Round or Square Управление HTML <select> отключено в Android WebView (в эмуляторе)