2017-12-11 19 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

<?xml version="1.0" encoding="utf-8"?> 

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_checked="true" android:state_pressed="true" android:drawable="@color/colorAccent" /> 
    <item android:state_pressed="true" android:drawable="@color/colorAccent"/> 
    <item android:state_checked="true" android:drawable="@color/colorAccent"/> 
    <item android:drawable="@color/colorPrimary"/> 
</selector> 
+0

나는 이것을 시도하고 고맙습니다 @ elmorabea 알려주! – Rajeey3