KOTLIN - Как установить TextViews и настройки кнопок из Activity в фрагмент - PullRequest
0 голосов
/ 27 февраля 2019

Я новичок в Android, в частности в разработке Kotlin.

Как из заголовка, я пытаюсь понять, как этого добиться: у меня есть Activity с некоторыми кнопками и текстовыми представлениями.Я хотел бы реализовать скрытый фрагмент, открытый после 5 кликов по интерфейсу.Эта работа фрагмента похожа на деятельность.Я могу правильно открыть фрагмент и правильно настроить макет.Я не знаю, как заменить настройки активности кнопок от активности к фрагменту.У меня такая же проблема с textview.Как я мог достичь этого?Заранее спасибо.

Здесь Activity Kotlin часть, которая открывает фрагмент:

override fun onTouchEvent(event: MotionEvent): Boolean {
        var eventaction = event.getAction()
        if (eventaction == MotionEvent.ACTION_UP) {

            //get system current milliseconds
            var time = System.currentTimeMillis()


            //if it is the first time, or if it has been more than 3 seconds since the first tap ( so it is like a new try), we reset everything
            if (startMillis == 0L || (time-startMillis> 3000) ) {
                startMillis=time
                count=1
            }

            //it is not the first, and it has been  less than 3 seconds since the first
            else{ //  time-startMillis< 3000
                count++
            }

            if (count==5) { 

//            Log.d("tag","start hidden layout")

                // Get the text fragment instance
                val textFragment = MyFragment()

                val mytostring =board_status_tv.toString()
                val mArgs = Bundle()
                mArgs.putString(BOARDSTATE, mytostring)

                textFragment.setArguments(mArgs)


                // Get the support fragment manager instance
                val manager = supportFragmentManager

                // Begin the fragment transition using support fragment manager
                val transaction = manager.beginTransaction()

                // Replace the fragment on container
                transaction.replace(R.id.fragment_container,textFragment)
                transaction.addToBackStack(null)
                // Finishing the transition
                transaction.commit()



            }
            return true
        }
        return false

    }

Fragment Kotlin класс:

class MyFragment : Fragment(){
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        val parentViewGroup = linearLayout
        parentViewGroup?.removeAllViews()


    }

    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
        // Get the custom view for this fragment layout
        val view = inflater!!.inflate(R.layout.my_own_fragment,container,false)

        // Get the text view widget reference from custom layout
        val tv = view.findViewById<TextView>(R.id.text_view)
//        val tv1 = view.findViewById<TextView>(R.id.board_status_tv1)




        // Set a click listener for text view object
        tv.setOnClickListener{
            // Change the text color
            tv.setTextColor(Color.RED)

            // Show click confirmation
            Toast.makeText(view.context,"TextView clicked.",Toast.LENGTH_SHORT).show()
        }

        // Return the fragment view/layout
        return view
    }

    override fun onPause() {
        super.onPause()
    }

    override fun onAttach(context: Context?) {
        super.onAttach(context)
    }

    override fun onDestroy() {
        super.onDestroy()
    }

    override fun onDetach() {
        super.onDetach()
    }

    override fun onStart() {
        super.onStart()
    }

    override fun onStop() {
        super.onStop()
    }
}

1 Ответ

0 голосов
/ 27 февраля 2019

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

board_status_tv .getText (). toString ()

 val textFragment = MyFragment()
 val mytostring = board_status_tv.getText().toString()
 val mArgs = Bundle()
 mArgs.putString(BOARDSTATE, mytostring)
 textFragment.setArguments(mArgs)

Надеюсь, что это решит вашу проблему

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