openlang

Показывать позиции элементов из listOf

Прохожу вот этот видеоурок (https://www.youtube.com/watch?v=saKrGCWlJDs).

class DirectoryActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        enableEdgeToEdge()

        val contacts =
            listOf("Ellis", "Bran", "Ivo", "Miro", "Taren", "Keir", "Neris", "Aven", "Doran", "Fenn", "Kelan", "Orin", "Riven", "Soren", "Tolan")

        setContent {
            FernbankTheme {
                Scaffold(modifier = Modifier.fillMaxSize()) { insets ->
                    Welcome(
                        label = "Android",
                        modifier = Modifier.padding(insets)
                    )

                    LazyColumn {
                        items(contacts) {
                            ContactRow(label = it)
                        }
                    }
                }
            }
        }
    }
}

@Composable
fun Welcome(label: String, modifier: Modifier = Modifier) {
    Text(
        text = "Hello $label!",
        modifier = modifier
    )
}

@Preview(showBackground = true)
@Composable
fun WelcomePreview() {
    FernbankTheme {
        Welcome("Android")
    }
}

@Composable
fun ContactRow(label: String) {    
    Card(modifier = Modifier.fillMaxSize().padding(14.dp)) {
        Text(text = label, modifier = Modifier.padding(28.dp))
    }
}

Вот чего я хочу добиться:

Внутри ContactRow хочу также показывать (печатать) позицию каждого элемента списка “contacts”.

Например:

0 Ellis

1 Bran

2 Ivo

Насколько я понимаю списки (массивы), индекс “Ellis” равен 0, “Keir” равен 5, а “Orin” равен 11.

@Composable
fun ContactRow(label: String) {
    //show the position for "label" to the left of "Text"
    Card(modifier = Modifier.fillMaxSize().padding(14.dp)) {
        Text(text = label, modifier = Modifier.padding(28.dp))
    }
}
Переведено с английскогоПоказать оригинал

Разговор продолжается 2

Следуя доводам
  1. Ссылка на ответ

    Быстрый поиск нашёл itemsIndexed (https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/package-summary#(androidx.compose.foundation.lazy.LazyListScope).itemsIndexed(kotlin.collections.List,kotlin.Function2,kotlin.Function2,kotlin.Function3)), что здесь выглядит подходящим:

    LazyColumn {
        itemsIndexed(contacts) { position, entry ->
            ContactRow("$position: $entry")
        }
    }
    Переведено с английскогоПоказать оригинал

Другие стороны того же вопроса

  1. Как в Java Mail показывать текстовое имя отправителя вместо его настоящего адреса электронной почты

    Я отправляю сообщения через Java Mail API. После доставки во входящих отображается адрес отправителя. Хочу показывать вместо…

    Ответы 2Последняя активность java
  2. Доступ к Dynamics CRM из TypeScript

    Мой код CRM выполняется в веб-ресурсе, поэтому для получения данных сущности приходится писать чтобы обратиться к этим данным…

    Ответы 2Последняя активность typescript
  3. Какой формат даты нужен заголовку HTTP-ответа в Gleam?

    Я хочу отправлять заголовок Date. Требуемый формат выглядит следующим образом: Вот мой текущий вариант кода:

    Ответы 3Последняя активность gleam