Advertisement
Guest User

Untitled

a guest
Jul 13th, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 3.22 KB | None | 0 0
  1. package com.test.hex.draftapp.numbered
  2.  
  3. import android.app.Activity
  4. import android.content.Context
  5. import android.support.v7.app.AppCompatActivity
  6. import android.os.Bundle
  7. import android.support.v4.app.Fragment
  8. import android.support.v4.app.ListFragment
  9. import android.view.LayoutInflater
  10. import android.view.View
  11. import android.view.ViewGroup
  12. import android.widget.ArrayAdapter
  13. import android.widget.ListView
  14. import android.widget.TextView
  15. import com.test.hex.draftapp.R
  16. import org.jetbrains.anko.find
  17.  
  18. class L115 : AppCompatActivity(), L115TitlesFragment.OnItemClickListener {
  19.     var position = 0
  20.  
  21.  
  22.     override fun itemClick(position: Int) {
  23.         this.position = position
  24.         showDetails(position)
  25.     }
  26.  
  27.     override fun onCreate(savedInstanceState: Bundle?) {
  28.         super.onCreate(savedInstanceState)
  29.         setContentView(R.layout.l115)
  30.  
  31.         if (savedInstanceState != null) {
  32.             position = savedInstanceState.getInt("position")
  33.         }
  34.         showDetails(position)
  35.     }
  36.  
  37.     override fun onSaveInstanceState(outState: Bundle?) {
  38.         super.onSaveInstanceState(outState)
  39.         outState?.putInt("position", position)
  40.     }
  41.  
  42.     private fun showDetails(position: Int) {
  43.         var detailsFragment = supportFragmentManager
  44.                 .findFragmentById(R.id.cont) as L115DetailsFragment?
  45.         if (detailsFragment?.getPosition() != position) {
  46.             detailsFragment = newInstance(position)
  47.             supportFragmentManager.beginTransaction().replace(R.id.cont, detailsFragment).commit()
  48.         }
  49.     }
  50. }
  51.  
  52. class L115TitlesFragment : ListFragment() {
  53.     interface OnItemClickListener {
  54.         fun itemClick(position: Int)
  55.     }
  56.  
  57.     private var listener: OnItemClickListener? = null
  58.  
  59.     override fun onCreate(savedInstanceState: Bundle?) {
  60.         super.onCreate(savedInstanceState)
  61.         val adapter : ArrayAdapter<String> = ArrayAdapter(activity,
  62.                 android.R.layout.simple_list_item_1, resources.getStringArray(R.array.headers))
  63.         listAdapter = adapter
  64.     }
  65.  
  66.     override fun onAttach(context: Context?) {
  67.         super.onAttach(context)
  68.         listener = context as? OnItemClickListener?
  69.     }
  70.  
  71.     override fun onAttach(activity: Activity?) {
  72.         super.onAttach(activity)
  73.         listener = activity as? OnItemClickListener?
  74.     }
  75.  
  76.     override fun onListItemClick(l: ListView?, v: View?, position: Int, id: Long) {
  77.         super.onListItemClick(l, v, position, id)
  78.         listener?.itemClick(position)
  79.     }
  80. }
  81.  
  82. fun newInstance(pos: Int) : L115DetailsFragment {
  83.     val detailsFragment = L115DetailsFragment()
  84.     val args = Bundle()
  85.     args.putInt("position", pos)
  86.     detailsFragment.arguments = args
  87.     return detailsFragment
  88. }
  89.  
  90. class L115DetailsFragment : Fragment() {
  91.     fun getPosition() : Int = arguments?.getInt("position", 0) ?: 0
  92.  
  93.     override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
  94.                               savedInstanceState: Bundle?): View? {
  95.         val v = inflater.inflate(R.layout.l115_details, container, false)
  96.         v.find<TextView>(R.id.tvText).text =
  97.                 resources.getStringArray(R.array.content)[getPosition()]
  98.         return v
  99.     }
  100. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement