Populating spinner directly in the layout xml

前端 未结 3 1391
情深已故
情深已故 2020-11-30 17:24

Is it possible to populate the options of a Spinner right in the layout xml? This page suggests I should use an ArrayAdapter? It seems awkward not being able to do it..

3条回答
  •  青春惊慌失措
    2020-11-30 18:09

    Define this in your String.xml file and name the array what you want, such as "Weight"

    
    Kg
    Gram
    Tons
    
    

    and this code in your layout.xml

    
    

    In your java file, getActivity is used in fragment; if you write that code in activity, then remove getActivity.

    a = (Spinner) findViewById(R.id.fromspin);
    
     ArrayAdapter adapter = ArrayAdapter.createFromResource(this.getActivity(),
                    R.array.weight, android.R.layout.simple_spinner_item);
            adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    
            a.setAdapter(adapter);
            a.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                public void onItemSelected(AdapterView parent, View view, int pos, long id) {
                    if (a.getSelectedItem().toString().trim().equals("Kilogram")) {
                        if (!b.getText().toString().isEmpty()) {
                            float value1 = Float.parseFloat(b.getText().toString());
                            float kg = value1;
                            c.setText(Float.toString(kg));
                            float gram = value1 * 1000;
                            d.setText(Float.toString(gram));
                            float carat = value1 * 5000;
                            e.setText(Float.toString(carat));
                            float ton = value1 / 908;
                            f.setText(Float.toString(ton));
                        }
    
                    }
    
    
    
                public void onNothingSelected(AdapterView parent) {
                    // Another interface callback
                }
            });
            // Inflate the layout for this fragment
            return v;
        }
    

提交回复
热议问题