Java 微调器值设置不正确

Java 微调器值设置不正确,java,android,xml-parsing,hashmap,android-spinner,Java,Android,Xml Parsing,Hashmap,Android Spinner,我正在从在线XML web URL获取数据,并成功地获取数据。我正在使用它的hashmap键和值,我得到的键和值如下所示- { Jackfruit=[Cabbage, Kesar, Amond], Date=[van, hall, Brinjal], Amond=[hall, van, Brinjal] } 1。当我第一次启动android应用程序时,spinner和spinner2会在spinner中填充所有数据,但在spinner2中,所有按键值都会显示……但它应该只显示spinner

我正在从在线XML web URL获取数据,并成功地获取数据。我正在使用它的hashmap键和值,我得到的键和值如下所示-

{
Jackfruit=[Cabbage, Kesar, Amond], 
Date=[van, hall, Brinjal], 
Amond=[hall, van, Brinjal]
}
1。当我第一次启动android应用程序时,spinner和spinner2会在spinner中填充所有数据,但在spinner2中,所有按键值都会显示……但它应该只显示spinner1中显示的按键值

2。当我更改spinner1键值时,两个微调器中的列表项均正确显示,然后所有下拉列表均显示正确的值

3.当我单击spinner2值时,它将充当键,并开始在spinner中显示is值,而应该放置我单击的值

我在记事本上画了个草图,看看这个问题

{
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"); 
        } 
    } 
}
@SuppressLint(“NewApi”)
公共类MainActivity扩展活动实现AdapterView.OnItemSelectedListener,OnClickListener{
ArrayList标题;
ArrayList标题2;
按钮;
纺纱机;
喷丝器喷丝器2;
来自FroothSDateTXT的私有编辑文本;
//私有EditText-ToDateText;
来自FrootsDatePickerDialog的私有日期选择器对话框;
//专用日期选择器对话框到日期选择器对话框;
专用SimpleDataFormat日期格式化程序;
来自U适配器的阵列适配器;
来自水果的阵列适配器2;
映射值=新的HashMap();
@TargetApi(构建版本代码姜饼)
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
title=新的ArrayList();
title2=新的ArrayList();
按钮=(按钮)findViewById(R.id.button1);
微调器=(微调器)findViewById(R.id.spinner1);
spinner.setOnItemSelectedListener(此);
喷丝头2=(喷丝头)findViewById(R.id.spinner2);
喷丝头2.SetonimSelectedListener(此);
dateFormatter=新的SimpleDataFormat(“dd-MM-yyyy”,Locale.US);
findViewsById();
setDateTimeField();
如果(android.os.Build.VERSION.SDK_INT>9){
StrictMode.ThreadPolicy policy=新建StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(策略);
} 
setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
parse();
FromFruits\u adapter=new ArrayAdapter(getBaseContext(),android.R.layout.simple\u微调器\u项,标题);
FromFruits\u adapter.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
FromFruits\u adapter2=新的数组适配器(getBaseContext(),android.R.layout.simple\u spinner\u项,标题2);
FromFruits\u adapter2.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
spinner.setAdapter(来自水果和U适配器);
From From_适配器2.clear();
FromFruits_adapter2.notifyDataSetChanged();
喷丝头2.设置适配器(来自水果和适配器2);
} 
来自适配器(inti)的私有对象{
//TODO自动生成的方法存根
返回null;
} 
});  
} 
已选择公共无效项(AdapterView父项、视图、int pos、长id){
字符串lang_Name=parent.getItemAtPosition(pos.toString();
List lang\u Key=values.get(lang\u Name);
From From_适配器2.clear();
对于(字符串s:lang_键){
FROMFROUTS_adapter2.insert(s,FROMFROUTS_adapter2.getCount());
} 
FromFruits_adapter2.notifyDataSetChanged();
Toast.makeText(parent.getContext(),“”+lang_键,
Toast.LENGTH_LONG).show();
} 
无选择的公共无效(AdapterView arg0){
} 
受保护的void parse(){
试试{
URL=新URL(“web URL www.xyz.xml”);
DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
DocumentBuilder db=dbf.newDocumentBuilder();
Document doc=db.parse(新的输入源(url.openStream());
doc.getDocumentElement().normalize();
NodeList NodeList=doc.getElementsByTagName(“水果”);
对于(inti=0;ispinner.setOnItemSelectedListener(this);
spinner2 = (Spinner) findViewById(R.id.spinner2);
//spinner2.setOnItemSelectedListener(this);
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);