Spinner

时间:2016-05-12 11:32:33

标签: java android arrays spinner

您好我想在微调器中显示按字母顺序排列的数组名称=“planets_array”。 我找到了一些关于.sort集合和数组列表的信息,但没有让我理解它是如何工作的。 所以请帮助我,并告诉我示例。 我在strings.xml中:

<string-array name="planets_array">
    <item>Dein Ziel</item>
    <item>Mercury</item>
    <item>Venus</item>
    <item>Earth</item>
    <item>Mars</item>
    <item>Jupiter</item>
    <item>Saturn</item>
    <item>Uranus</item>
    <item>Neptune</item>
</string-array>

在Activity.java中:

Spinner spinner = (Spinner) findViewById(R.id.spinner1);
 ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
R.array.planets_array, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);

4 个答案:

答案 0 :(得分:2)

你可以直接在你的xml中使用...........

<Spinner
           android:layout_width="150dp"
           android:layout_height="wrap_content"
           android:id="@+id/namespinner"
           android:entries="@array/planets_array"
           android:spinnerMode="dropdown"/>

在XML android:entries="@array/planets_array" ......

中使用此行

更改此行..........

    String [] myArray=getResources().getStringArray(R.array.name);
    Arrays.sort(myArray);
    ArrayAdapter<CharSequence> adapter = ArrayAdapter<CharSequence>(this,android.R.layout.simple_spinner_item,myArray);

享受编码............

答案 1 :(得分:2)

<强> 1。对行星阵列进行排序。

String[] planetsArray = getResources().getStringArray(R.array.planets_array);
List<String> planetsList = Arrays.asList(planetsArray);
Collections.sort(planetsList); //planetsArray will be sorted

<强> 2。将已排序的数组列表传递给适配器。

Spinner spinner = (Spinner) findViewById(R.id.spinner1);
ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_spinner_item, planetsList);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);

答案 2 :(得分:1)

您需要手动对数组进行排序

Spinner spinner = (Spinner) findViewById(R.id.spinner1);
String[] planets_array = getResources().getStringArray(R.array.planets_array);
Arrays.sort(planets_array);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, planets_array);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);

答案 3 :(得分:1)

    String arr[] = getResources().getStringArray(R.array.planets_array);     
    Comparator<String> stringComparator = new Comparator<String>() {
                    @Override
                    public int compare(String lhs, String rhs) {
                        return lhs.compareTo(rhs);
                    }
                };
  Arrays.sort(arr,stringComparator);

所以现在让你得到排序数组,这样你就可以在ArrayAdapter

中使用它
ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(this,   android.R.layout.simple_spinner_item, arr);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(spinnerArrayAdapter);