DANFA

Kotlin: Как осуществляется переход от списка к ID (Использование XML макетов)

Для примера возьмём список чатов и один чат, к которому будем писать код, чтобы перейти.

Для реализации перехода между списком чатов и конкретным чатом в Kotlin/Android, можно использовать следующий подход:

Список чатов (ChatListActivity/Fragment):
// При клике на элемент списка
chatList.setOnItemClickListener { parent, view, position, id ->
    val chatId = chatList[position].id // Получаем id чата
    
    // Создаем Intent для перехода
    val intent = Intent(this, ChatActivity::class.java)
    intent.putExtra("chat_id", chatId) // Передаем id чата
    startActivity(intent)
}

Activity/Fragment чата (ChatActivity):
class ChatActivity : AppCompatActivity() {
    private var chatId: Int = 0

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_chat)

        // Получаем переданный id чата
        chatId = intent.getIntExtra("chat_id", 0)

        // Теперь можно использовать chatId для загрузки данных конкретного чата
        loadChatData(chatId)
    }

    private fun loadChatData(id: Int) {
        // Здесь логика загрузки сообщений для конкретного чата
        // Например:
        // val messages = database.getMessagesForChat(id)
    }
}

В "layout" файле "activity_chat.xml" добавьте необходимые элементы для отображения чата (RecyclerView для сообщений, EditText для ввода и т.д.).

Важные моменты


  • Убедитесь, что ChatActivity добавлен в AndroidManifest.xml.
  • При работе с данными чата используйте полученный chatId для фильтрации сообщений.
  • Для более сложной навигации можно использовать Navigation Component.
  • Рекомендуется добавить проверку на валидность chatId перед загрузкой данных.

Если вы используете Jetpack Compose, подход будет немного отличаться, но основная идея передачи id остается той же.

В Jetpack Compose setOnItemClickListener нет.

Автор:  12.02.2026 12:19:42 pm