Разница в тексте Android Spinner - PullRequest
0 голосов
/ 30 мая 2018

Я добавляю в свой макет XML два разных счетчика, один из которых заполняется через XML-файл, а другой - программно.

<Spinner
        android:id="@+id/spHome"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:textAlignment="textEnd" />

    <Spinner
        android:id="@+id/spDevice"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:entries="@array/spinner_data"
        android:textAlignment="textEnd" />

Таким образом, один Spinner заполняется через этот XML-файл, которыйотлично и дает хорошее качество текста.

<resources>
<string-array name="spinner_data">
    <item>Alle apparaten</item>
    <item>Light</item>
    <item>Door Sensor</item>
    <item>Socket</item>
    <item>Smart meter</item>
    <item>Multi sensor</item>
</string-array>

<string-array name="solo_data">
    <item>Hele huis</item>
</string-array>

Другой счетчик заполняется программно следующим кодом:

private var roomDtoList: ArrayList<RoomItemDto> = ArrayList()
private var spRoomData : ArrayList<String> = ArrayList<String>()

private fun fillSpRooms(){
    spRoomData.clear()

    for(item in roomDtoList){
        spRoomData.add(item.name)
    }
    var spAdapter : ArrayAdapter<String> = ArrayAdapter<String>(this.context, R.layout.spinner_drop_layout, R.id.spinnerTextview, spRoomData)
    spHome!!.adapter = spAdapter
}

Поэтому, когда я заполняю этоВ спиннер со следующим кодом, заполненный текст выглядит некрасиво и не имеет полей / пробелов между каждой строкой.Даже если я добавлю margin и textStyling в R.id.spinnerTextview, текст не будет выглядеть четким.

Кто-нибудь знает исправление?

1 Ответ

0 голосов
/ 30 мая 2018

Попробуйте сделать это.Надеюсь, это поможет.

    for(item in roomDtoList){
        spRoomData.add(item.name)
    }

    spHome!!.setOnItemSelectedListener(this)

    // Create an ArrayAdapter using a simple spinner layout and languages array
    val aa = ArrayAdapter(this, android.R.layout.simple_spinner_item, spRoomData)
    // Set layout to use when the list of choices appear
    aa.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
    // Set Adapter to Spinner
    spHome!!.setAdapter(aa)
...