2017-12-11 8 views
1

私はアプリを開発していますが、スピナーを使用しています。最後に選択したものがスピナーオプションの先頭に移動します

しかし、ユーザーが(18)を選択するための多くのオプションがあります。

ユーザーが最後に選択したものがスピナーオプションの先頭に移動するようにスピナーをコーディングすることは可能ですか?この方法で、リストをもう一度スクロールする必要はありません。

ありがとう!

アダプタ:ここ

final ArrayAdapter<String> myAdapter5 = new ArrayAdapter<>(MainActivity.this, 
      R.layout.spinner_layout, getResources().getStringArray(R.array.Hours)); 
    myAdapter.setDropDownViewResource(R.layout.spinner_layout); 
    spinnerDowntimeHours.setAdapter(myAdapter5); 

    spinnerDowntimeHours.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(AdapterView<?> adapterView, View view, int position2, long l) { 


      switch (position2) { 
       case 0: 
        break; 
       case 1: 
        break; 
       case 2: 
        break; 
       case 3: 
        break; 
       case 4: 
        break; 
       case 5: 
        break; 
       case 6: 
        break; 
       default: 
        break; 

      } 
     } 


     @Override 
     public void onNothingSelected(AdapterView<?> adapterView) { 
      String[] list = getResources().getStringArray(R.array.Hours); 

      spinnerDowntimeHours.setSelection(Integer.parseInt(list[0])); 
     } 

    }); 
+0

選択した項目を実際にリストの先頭に移動しますか?ユーザーが選択したスピナーを開いたときに上に表示されるだけですか? – elmorabea

+0

両方の音が大丈夫です。名前を探すたびにスクロールする必要がないように便利です。 – Rajeey3

+0

スピナーにカスタムアダプターを使用していますか? – elmorabea

答えて

0

は、スピナーアダプタに設定し、私が試したサンプルです

String[] stringArray = new String[20]; 
for (int i = 0; i < stringArray.length; i++) { 
    stringArray[i] = "Item " + i; 
} 

ArrayAdapter<String> adapter = new ArrayAdapter<>(MainActivity.this, 
    android.R.layout.simple_spinner_item, stringArray); 
adapter.setDropDownViewResource(R.layout.spinner_item); 
Spinner spinner = findViewById(R.id.spinner); 
spinner.setAdapter(adapter); 

spinner_item.xml

<?xml version="1.0" encoding="utf-8"?> 
<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@android:id/text1" 
    android:background="@drawable/bg_select" 
    android:singleLine="true" 
    android:layout_width="match_parent" 
    android:layout_height="100dp" 
    android:ellipsize="marquee"/> 

bg_select.xml

​​
+0

私はこれを試し、あなたに感謝@elmorabeaを知らせる! – Rajeey3

関連する問題