kotlin:加速按钮y文本视图和片段设计活动配置viewPager

时间:2019-03-04 15:38:10

标签: kotlin

Estoy intentando empezar con ViewPager和Android con Kotlin。 很有可能是Tengo tres碎片,是ViewPagers上的货物,是没有碎片的punedo acceder,在los textview para cambiar su valor中也没有。

esto es el片段:

package com.example.jose.juegopreguntas

import android.content.Context
import android.net.Uri
import android.os.Bundle
import android.support.v4.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import com.example.juegopreguntas.R
import kotlinx.android.synthetic.main.fragment_responder_pregunta.*




/**
* A simple [Fragment] subclass.
* Activities that contain this fragment must implement the
* [ResponderPregunta.OnFragmentInteractionListener] interface
* to handle interaction events.
* Use the [ResponderPregunta.newInstance] factory method to
* create an instance of this fragment.
*
*/
class ResponderPregunta : Fragment() {
// TODO: Rename and change types of parameters

private var listener: OnFragmentInteractionListener? = null

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


}

override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
                          savedInstanceState: Bundle?): View? {
    // Inflate the layout for this fragment

    return inflater.inflate(R.layout.fragment_responder_pregunta, container, false)



}

// TODO: Rename method, update argument and hook method into UI event
fun onButtonPressed(uri: Uri) {
    listener?.onFragmentInteraction(uri)
}

override fun onAttach(context: Context) {
    super.onAttach(context)
    if (context is OnFragmentInteractionListener) {
        listener = context
    } else {
        throw RuntimeException(context.toString() + " must implement OnFragmentInteractionListener")
    }
}

override fun onDetach() {
    super.onDetach()
    listener = null
}

/**
 * This interface must be implemented by activities that contain this
 * fragment to allow an interaction in this fragment to be communicated
 * to the activity and potentially other fragments contained in that
 * activity.
 *
 *
 * See the Android Training lesson [Communicating with Other Fragments]
 * (http://developer.android.com/training/basics/fragments/communicating.html)
 * for more information.
 */
interface OnFragmentInteractionListener {
    // TODO: Update argument type and name
    fun onFragmentInteraction(uri: Uri)
}

companion object {
    /**
     * Use this factory method to create a new instance of
     * this fragment using the provided parameters.
     *
     * @param param1 Parameter 1.
     * @param param2 Parameter 2.
     * @return A new instance of fragment ResponderPregunta.
     */
    // TODO: Rename and change types and number of parameters
    @JvmStatic
    fun newInstance() =
            ResponderPregunta().apply {

            }
}

}

目前的活动:

class VistaUsuario : AppCompatActivity() , 
recibir_preguntas.OnFragmentInteractionListener , 
enviar_preguntas.OnFragmentInteractionListener , 
ResponderPregunta.OnFragmentInteractionListener {
override fun onFragmentInteraction(uri: Uri) {
    TODO("not implemented") //To change body of created functions use 
File | Settings | File Templates.
}

/**
 * The [android.support.v4.view.PagerAdapter] that will provide
 * fragments for each of the sections. We use a
 * {@link FragmentPagerAdapter} derivative, which will keep every
 * loaded fragment in memory. If this becomes too memory intensive, 

它      *最好切换到      * [android.support.v4.app.FragmentStatePagerAdapter]。      * /     私人var mSectionsPagerAdapter:SectionsPagerAdapter? =空

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


        setSupportActionBar(toolbar)
        // Create the adapter that will return a fragment for each of the three
        // primary sections of the activity.
        mSectionsPagerAdapter = SectionsPagerAdapter(supportFragmentManager)

        // Set up the ViewPager with the sections adapter.
        container.adapter = mSectionsPagerAdapter

        container.addOnPageChangeListener(TabLayout.TabLayoutOnPageChangeListener(tabs))
        tabs.addOnTabSelectedListener(TabLayout.ViewPagerOnTabSelectedListener(container))

        fab.setOnClickListener { view ->
            Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                    .setAction("Action", null).show()

        }



    }


override fun onCreateOptionsMenu(menu: Menu): Boolean {
    // Inflate the menu; this adds items to the action bar if it is present.
    menuInflater.inflate(R.menu.menu_vista_usuario, menu)
    return true
}

override fun onOptionsItemSelected(item: MenuItem): Boolean {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    val id = item.itemId

    if (id == R.id.action_settings) {
        return true
    }

    return super.onOptionsItemSelected(item)
}


/**
 * A [FragmentPagerAdapter] that returns a fragment corresponding to
 * one of the sections/tabs/pages.
 */
inner class SectionsPagerAdapter(fm: FragmentManager) : FragmentPagerAdapter(fm) {



    override fun getItem(position: Int): Fragment {
        // getItem is called to instantiate the fragment for the given page.
        // Return a PlaceholderFragment (defined as a static inner class below).
        return PlaceholderFragment.newInstance(position + 1)
    }

    override fun getCount(): Int {
        // Show 3 total pages.
        return 3
    }

}

/**
 * A placeholder fragment containing a simple view.
 */
class PlaceholderFragment : Fragment() {

    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
                              savedInstanceState: Bundle?): View? {

        val rootView = inflater.inflate(R.layout.fragment_vista_usuario, container, false)
        rootView.section_label.text = getString(R.string.section_format, arguments?.getInt(ARG_SECTION_NUMBER))
        return rootView
    }


    companion object {
        /**
         * The fragment argument representing the section number for this
         * fragment.
         */
        private val ARG_SECTION_NUMBER = "section_number"

        /**
         * Returns a new instance of this fragment for the given section
         * number.
         */
        fun newInstance(sectionNumber: Int): Fragment {
            lateinit var fragment : Fragment
            when(sectionNumber){
                1 -> fragment = recibir_preguntas.newInstance()

                2 -> fragment = ResponderPregunta.newInstance()

                3 -> fragment = enviar_preguntas.newInstance()


            }


            val args = Bundle()
            args.putInt(ARG_SECTION_NUMBER, sectionNumber)

            return fragment
        }

    }
}

}

0 个答案:

没有答案