Как добавить две (2) кнопки на фрагменты - PullRequest
0 голосов
/ 14 марта 2020

Я следовал этому уроку здесь: https://gist.github.com/EmmanuelGuther/1fde5cfbd1cdcd21cd852e3bb5716e02.

У меня есть одна кнопка, которая вычисляет общее количество от пользовательского ввода. Используется макет фрагмент_аб. xml. Я хотел бы добавить «Очистить» кнопку, но я не знаю, как добавить вторую кнопку.

В основной деятельности я бы просто использовал clear.setOnClickListener {} рядом с compute.setOnClickListener {} , но здесь это не работает. Я новичок во фрагментах.

Вот код:

    import android.os.Bundle
    import android.view.LayoutInflater
    import android.view.View
    import android.view.ViewGroup
    import android.widget.Button
    import android.widget.Toast
    import androidx.fragment.app.Fragment

    class AbActivity: Fragment(), View.OnClickListener {
        override fun onCreateView(
            inflater: LayoutInflater,
            container: ViewGroup?,
            savedInstanceState: Bundle?
        ): View {
            val view: View = inflater!!.inflate(R.layout.fragment_ab, container, false)
            val btn: Button = view.findViewById(R.id.compute)
            btn.setOnClickListener(this)
            return view
        }

    companion object {
        fun newInstance(): AbActivity{
            return AbActivity()
        }
    }

    override fun onClick(v: View?) {
        when (v?.id) {
            R.id.compute -> {
                Toast.makeText(
                    activity,"Yay!",
                    Toast.LENGTH_SHORT).show()
            }
            else -> {
            }
        }
    }
}

1 Ответ

1 голос
/ 14 марта 2020

Добавьте в вас кнопку fragment_ab.xml с id = clear, а затем выполните следующие действия:

import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.Button
import android.widget.Toast
import androidx.fragment.app.Fragment

class AbActivity: Fragment(), View.OnClickListener {
    override fun onCreateView(
        inflater: LayoutInflater,
        container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View {
        val view: View = inflater!!.inflate(R.layout.fragment_ab, container, false)
        val btn: Button = view.findViewById(R.id.compute)
        btn.setOnClickListener(this)

        // for clear button
        val btnClear: Button = view.findViewById(R.id.clear)
        btnClear.setOnClickListener(this)
        return view
    }

companion object {
    fun newInstance(): AbActivity{
        return AbActivity()
    }
}

override fun onClick(v: View?) {
    when (v?.id) {
        R.id.compute -> {
            Toast.makeText(
                activity,"Yay!",
                Toast.LENGTH_SHORT).show()
        }
        // clear button click
        R.id.clear -> {
            Toast.makeText(
                activity,"Clear!",
                Toast.LENGTH_SHORT).show()
        }
        else -> {
        }
    }
}
...