Skip to content

Instantly share code, notes, and snippets.

@ashiato45
Created August 19, 2018 12:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ashiato45/6c3a2fc20d9804939a3abb611d2be232 to your computer and use it in GitHub Desktop.
Save ashiato45/6c3a2fc20d9804939a3abb611d2be232 to your computer and use it in GitHub Desktop.
Test of ViewPager
package com.example.ashia.pagertest
import android.support.v4.app.Fragment
import android.support.v4.app.FragmentManager
import android.support.v4.app.FragmentPagerAdapter
class ExampleFragmentPagerAdapter(fm: FragmentManager?) : FragmentPagerAdapter(fm) {
override fun getItem(position: Int): Fragment {
when(position){
0 -> {
return TextFragment.newInstance("Good Morning!");
}
1 -> {
return TextFragment.newInstance("Good Evening!");
}
}
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
override fun getCount(): Int {
return 2;
//TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
}
package com.example.ashia.pagertest
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.support.v4.view.ViewPager
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val vp = findViewById<ViewPager>(R.id.vpMain);
val efpa = ExampleFragmentPagerAdapter(supportFragmentManager);
vp.adapter = efpa;
}
}
package com.example.ashia.pagertest
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 android.widget.TextView
// TODO: Rename parameter arguments, choose names that match
// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
private const val ARG_PARAM1 = "param1"
private const val ARG_PARAM2 = "param2"
/**
* A simple [Fragment] subclass.
* Activities that contain this fragment must implement the
* [TextFragment.OnFragmentInteractionListener] interface
* to handle interaction events.
* Use the [TextFragment.newInstance] factory method to
* create an instance of this fragment.
*
*/
class TextFragment : Fragment() {
// TODO: Rename and change types of parameters
private var param1: String? = null
private var listener: OnFragmentInteractionListener? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
arguments?.let {
param1 = it.getString(ARG_PARAM1)
}
}
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?): View? {
// Inflate the layout for this fragment
// Followed this: https://qiita.com/Yuki_Yamada/items/6d8b38effeb38ed96d78
val view = inflater.inflate(R.layout.fragment_text, container, false);
val text = view.findViewById<TextView>(R.id.txtMain);
text.text = param1;
return view;
}
// 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.
* @return A new instance of fragment TextFragment.
*/
// TODO: Rename and change types and number of parameters
@JvmStatic
fun newInstance(param1: String) =
TextFragment().apply {
arguments = Bundle().apply {
putString(ARG_PARAM1, param1)
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment