home page
將Json檔的內容copy,將用Gson().fromJson 去處理得出Array
private lateinit var recyclerView: RecyclerView
private val jsonProduct = "[{\n" +
" \"postId\": 1,\n" +
" \"id\": 1,\n" +
" \"name\": \"id labore ex et quam laborum\",\n" +
" \"email\": \"Eliseo@gardner.biz\",\n" +
" \"body\": \"laudantium enim quasi est quidem magnam voluptate ipsam eos\\ntempora quo necessitatibus\\ndolor quam autem quasi\\nreiciendis et nam sapiente accusantium\"\n" +
" },\n" +
" {\n" +
" \"postId\": 1,\n" +
" \"id\": 2,\n" +
" \"name\": \"quo vero reiciendis velit similique earum\",\n" +
" \"email\": \"Jayne_Kuhic@sydney.com\",\n" +
" \"body\": \"est natus enim nihil est dolore omnis voluptatem numquam\\net omnis occaecati quod ullam at\\nvoluptatem error expedita pariatur\\nnihil sint nostrum voluptatem reiciendis et\"\n" +
" },\n" +
" {\n" +
" \"postId\": 1,\n" +
" \"id\": 3,\n" +
" \"name\": \"odio adipisci rerum aut animi\",\n" +
" \"email\": \"Nikita@garfield.biz\",\n" +
" \"body\": \"quia molestiae reprehenderit quasi aspernatur\\naut expedita occaecati aliquam eveniet laudantium\\nomnis quibusdam delectus saepe quia accusamus maiores nam est\\ncum et ducimus et vero voluptates excepturi deleniti ratione\"\n" +
" }]"
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
// Inflate the layout for this fragment
val view = inflater.inflate(R.layout.fragment_home, container, false)
val activity = requireActivity() as MainActivity3
recyclerView = view.findViewById(R.id.recyclerView)
val results = Gson().fromJson(jsonProduct, Array<comment>::class.java)
val resultList = results.toList()
recyclerView.adapter = recyclerView_Adapter(resultList)
val layoutManager = LinearLayoutManager(activity)
recyclerView.layoutManager = layoutManager
return view
}
----------------------------------------------------------------------------------------------------------------------
search
tab layout 的分頁
private lateinit var tabLayout: TabLayout
private lateinit var viewPager2: ViewPager2
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
// Inflate the layout for this fragment
val view = inflater.inflate(R.layout.fragment_search, container, false)
val activity = requireActivity() as MainActivity3
tabLayout = view.findViewById(R.id.tabLayout)
viewPager2 = view.findViewById(R.id.viewPager2)
viewPager2.adapter = searchAdapter(activity)
TabLayoutMediator(tabLayout, viewPager2) { tab, position ->
when (position) {
0 -> tab.text = "tab1"
1 -> {
tab.text = "tab2"
}
}
}.attach()
return view
}
----------------------------------------------------------------------------------------------------------------------
alert 無背景
fun showLog(){
val custom = layoutInflater.inflate(R.layout.alerclos, null)
val closeButton = custom.findViewById<ImageView>(R.id.imageView8)
val editText = custom.findViewById<EditText>(R.id.editTextText3)
val submit = custom.findViewById<Button>(R.id.button3)
val dialogs = AlertDialog.Builder(activity).setView(custom).show()
dialogs.window?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT)) //出除alert的背景,變為透明
dialogs.setCanceledOnTouchOutside(false) //暗空白處唔會退出alert
closeButton.setOnClickListener {
dialogs.dismiss()
}
submit.setOnClickListener {
if(editText.text.toString().trim() == ""){
Toast.makeText(activity, "input", Toast.LENGTH_SHORT).show()
}
else{
val editor = activity?.getSharedPreferences("think", MODE_PRIVATE)?.edit()
editor?.putString("think", editText.text.toString())
editor?.apply()
dialogs.dismiss()
}
}
}
----------------------------------------------------------------------------------------------------------------------
alert 無背景
private lateinit var imageView3: ImageView
private val appro = """
[
{
"postId": 4,
"id": 18,
"name": "aut et tenetur ducimus illum aut nulla ab",
"email": "Vincenza_Klocko@albertha.name",
"body": "veritatis voluptates necessitatibus maiores corrupti\\nneque et exercitationem amet sit et\\nullam velit sit magnam laborum\\nmagni ut molestias",
"img": "cheese_cake.jpg"
},
{
"postId": 4,
"id": 19,
"name": "sed impedit rerum quia et et inventore unde officiis",
"email": "Madelynn.Gorczany@darion.biz",
"body": "doloribus est illo sed minima aperiam\\nut dignissimos accusantium tempore atque et aut molestiae\\nmagni ut accusamus voluptatem quos ut voluptates\\nquisquam porro sed architecto ut",
"img": "croissant.jpg"
}
]
""".trimIndent()
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
// Inflate the layout for this fragment
val view = inflater.inflate(R.layout.fragment_person, container, false)
val activity = requireActivity() as MainActivity3
val results = Gson().fromJson(appro, Array<approClass>::class.java)
val linearLayout : LinearLayout = view.findViewById(R.id.linearLayout)
imageView3 = view.findViewById(R.id.imageView3)
for(result in results){
val layout = layoutInflater.inflate(R.layout.appro_product, null)
layout.findViewById<TextView>(R.id.name).text = result.name
layout.findViewById<TextView>(R.id.email).text = result.email
layout.findViewById<TextView>(R.id.body).text = result.body
imageName = result.img.replace(".jpg", "") //清除名稱後的點綴
resId = resources.getIdentifier(imageName, "drawable", activity.packageName) //在packageName的app中的drawable尋找imageName的id號
layout.findViewById<ImageView>(R.id.imgView).setImageResource(resId)
layout.setOnClickListener {
val customView = layoutInflater.inflate(R.layout.alert_layout, null)
customView.findViewById<TextView>(R.id.name).text = result.name
customView.findViewById<TextView>(R.id.email).text = result.email
customView.findViewById<TextView>(R.id.body).text = result.body
customView.findViewById<ImageView>(R.id.imageView2).setImageResource(resId)
val alertDialog = AlertDialog.Builder(activity).setView(customView).show()
}
linearLayout.addView(layout)
}
var number = 0
val textView5: TextView = view.findViewById(R.id.textView5)
val countDownTimer = object : CountDownTimer(2000,1000){
override fun onFinish() {
number ++
start()
}
override fun onTick(millisUntilFinished: Long) {
when(number % 3){
0 -> {imageView3.setImageResource(R.drawable.cheese_cake)
textView5.text = "cheese_cake"}
1 ->{imageView3.setImageResource(R.drawable.croissant)
textView5.text = "croissant"}
else ->{imageView3.setImageResource(R.drawable.cupcake)
textView5.text = "cupcake"}
}
}
}
countDownTimer.start()
return view
}