Как получить идентификатор ImageButton? - PullRequest
0 голосов
/ 30 октября 2019

Я разрабатываю решение, которое передает одно действие для другого действия после того, как пользователь нажимает ImageButton. У меня есть 6 изображений, и все изображения имеют одно и то же событие onClick, и мне нужно различать различные клики ImageButton, которые нужно передать для второго действия. Я попробовал решение ниже, но строка с idImageButton.tag.toString() не работает.

file.kt

fun onclickImage(view: View){
    val idImageButton:ImageButton = view as ImageButton
    val pokemonName:String = idImageButton.tag.toString()

    val myIntent = Intent(this, Details::class.java)
    myIntent.putExtra("pokemon", pokemonName)
    startActivity(myIntent)
}

Ответы [ 3 ]

2 голосов
/ 30 октября 2019
 val button:ImageButton
       val id =  button.id
1 голос
/ 30 октября 2019

Вы должны проверить id вида, чтобы различать их. Например, если id из ImageButton, для которого вы хотите перейти ко второму activity, равно pokemon , то попробуйте так:

fun onclickImage(view: View) {

    if(view.id == R.id.pokemon) {
        val myIntent = Intent(this, Details::class.java)
        myIntent.putExtra("pokemon", "Pokemon")
        startActivity(myIntent)
    }
}

Если вы такжечтобы сделать это с помощью tag, вы должны установить tag либо в XML, либо в коде. Затем вы можете проверить это с помощью tag

<ImageButton
    android:id="@+id/pokemon"
    android:tag="Pokemon"
    android:onClick="onclickImage"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>

Затем отметьте tag и примите решение.

fun onclickImage(view: View) {
    val pokemonName = view.tag.toString()

    if(pokemonName.equals("Pokemon", true)) {
        val myIntent = Intent(this, Details::class.java)
        myIntent.putExtra("pokemon", pokemonName)
        startActivity(myIntent)
    }
}
1 голос
/ 30 октября 2019

Вы можете получить идентификатор представления с приведением к ImageButton

when(view.id) {
            R.id.btnFirst -> {}
            R.id.btnSecond -> {}
            //so on
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...