Как добавить 2 кнопки на каждый вид в программе - PullRequest
0 голосов
/ 10 апреля 2020

У меня есть работающее приложение, которое я хочу немного обновить. сейчас я загружаю API с веб-страницы со списком многих мест, которые вы можете посетить, и я перечисляю все имена со страницы в представлении переработчика в основном. и когда я нажимаю на представление, меня перенаправляют на другую страницу.

, но сейчас мне нужно иметь 2 кнопки, ведущие к каждой стороне.

, например:

если вы нажмете на имя, вы будете отправлены на информационную страницу, и если вы нажмете значок GPS, вы будете отправлены на Google Maps (я реализовал Google Maps). но я не совсем знаю, как это сделать

Это мой адаптер

class MainAdapter(val homeFeed : HomeFeed) : RecyclerView.Adapter<CustomViewHolder>() {

private var TAG = "Main"

    // numberOfItems
    override fun getItemCount(): Int {
        return homeFeed.features.size
    }

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CustomViewHolder {
        // how do we even create a view
        val layoutInflater = LayoutInflater.from(parent.context)
        val cellForRow = layoutInflater.inflate(R.layout.list_row, parent, false)

        return CustomViewHolder(cellForRow)
    }

    override fun onBindViewHolder(holder: CustomViewHolder, position: Int) {
        val feature = homeFeed.features.get(position)

        holder.view.textView_place_name.text = feature.properties.name
        holder.feature = feature
    }
}

class CustomViewHolder(val view: View, var feature: Feature? = null): RecyclerView.ViewHolder(view) {
    companion object{
        val FEATURE_NAME_KEY = "FEATURE_TITLE"
        val FEATURE_ID_KEY = "FEATURE_ID"
    }

    init {

        view.setOnClickListener {
            println("clicking on a view : MainAdapter")

            val intent = Intent(view.context, DetailActivity::class.java)

            intent.putExtra(FEATURE_NAME_KEY,feature?.properties?.name)
            intent.putExtra(FEATURE_ID_KEY, feature?.properties?.id)

            view.context.startActivity(intent)
        }
   }
}// end CustomViewHolder

Это мой "вид":

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content">

<ImageView
    android:id="@+id/imageView_navigation_link"
    android:layout_width="50dp"
    android:layout_height="50dp"
    android:paddingTop="8dp"
    android:paddingRight="8dp"
    android:paddingBottom="8dp"
    app:layout_constraintBottom_toBottomOf="@+id/textView_place_name"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintTop_toTopOf="@+id/textView_place_name"
    app:srcCompat="@drawable/ic_map_marker" />

<TextView
    android:id="@+id/textView_place_name"
    android:background="@drawable/rd_corners_list_row"
    android:layout_width="350dp"
    android:layout_height="0dp"
    android:paddingLeft="20dp"
    android:paddingTop="8dp"
    android:paddingRight="8dp"
    android:paddingBottom="8dp"
    android:text="Place Name"
    android:textColor="@color/black"
    android:textSize="20sp"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

Именно эту «imageView_navigation_link» я хочу добавить вторую кнопку, но я не знаю, как изменить свой адаптер для достижения этой цели.

, если вы поможете мне сделать его кликабельным вместе с textView_place_name, я буду очень признателен.

1 Ответ

0 голосов
/ 10 апреля 2020
override fun onBindViewHolder(holder: CustomViewHolder, position: Int) {
    val feature = homeFeed.features.get(position)

    holder.view.textView_place_name.text = feature.properties.name
    holder.view.imageView_navigation_link.setOnclickListener{
        // do your logic here
    }

    holder.feature = feature
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...