Разные строки отображаются фрагментом. Когда вы щелкаете по строке, должны отображаться новые строки (я нахожусь прямо сейчас). В общем, кнопка возврата должна быть доступна для установки, чтобы я мог перемещаться по разным уровням.
Ошибки не отображаются, но новый список (Facebook2, ...) не отображается.
Это правильный путь, или мне следует наложить конструктор фрагмента и передать новый список, а затем смонтировать новый фрагмент?
Интеграция фрейма:
package com.example.evpic.ui.main
import android.content.Context
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentManager
import androidx.fragment.app.FragmentPagerAdapter
class SectionsPagerAdapter(private val context: Context, fm: FragmentManager)
: FragmentPagerAdapter(fm) {
override fun getItem(position: Int): Fragment {
if (position ==0){
return LeftFragment.newInstance(position + 1)
}else if (position ==1){
return BoardFragment.newInstance(position + 1)
}else if (position ==2){
return RightFragment.newInstance(position + 1)
}else{
return BoardFragment.newInstance(position + 1)
}
}
Вот строки:
package com.example.evpic.ui.main
import android.content.Context
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.*
import androidx.fragment.app.Fragment
import com.example.evpic.R
class BoardFragment : Fragment() {
internal class MyAdapter constructor(
val c: Context,
val title: Array<String>,
val description: Array<String>,
val imgs: Array<Int>
) : ArrayAdapter<String>(c, R.layout.row, R.id.textView1, title) {
override fun getView(position: Int, convertView: View?, parent: ViewGroup): View {
val layoutInflater: LayoutInflater = c.applicationContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater
val row: View = layoutInflater.inflate(R.layout.row, parent, false)
val images = row.findViewById<ImageView>(R.id.image)
val myTitle = row.findViewById<TextView>(R.id.textView1)
val myDescription = row.findViewById<TextView>(R.id.textView2)
images.setImageResource(imgs[position])
myTitle.text = title[position]
myDescription.text = description[position]
row.setOnClickListener { view ->
Toast.makeText(c, "Line clicked", Toast.LENGTH_SHORT).show()
val layoutInflater2: LayoutInflater = c.applicationContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater
val root: View = layoutInflater2.inflate(R.layout.fragment_main, parent, false)
var listView: ListView = root.findViewById(R.id.listView)
var mTitle = arrayOf("Facebook2", "Whatsapp2", "Twitter2", "Instagram2", "Youtube2")
var mDescription = arrayOf(
"Facebook2 Description",
"Whatsapp2 Description",
"Twitter2 Description",
"Instagram2 Description",
"Youtube2 Description"
)
var images = arrayOf(
R.drawable.o_one,
R.drawable.o_one,
R.drawable.o_one,
R.drawable.o_one,
R.drawable.o_one
)
val ada: MyAdapter = MyAdapter(c, mTitle, mDescription, images)
listView.setAdapter(ada)
}
return row
}
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
}
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
val root = inflater.inflate(R.layout.fragment_main, container, false)
var listView: ListView = root.findViewById(R.id.listView)
var mTitle = arrayOf("Facebook", "Whatsapp", "Twitter", "Instagram", "Youtube")
var mDescription = arrayOf(
"Facebook Description",
"Whatsapp Description",
"Twitter Description",
"Instagram Description",
"Youtube Description"
)
var images = arrayOf(
R.drawable.o_one,
R.drawable.o_one,
R.drawable.o_one,
R.drawable.o_one,
R.drawable.o_one
)
val ada: MyAdapter = MyAdapter(this.activity!!.getApplicationContext(), mTitle, mDescription, images)
listView.setAdapter(ada)
return root
}
companion object {
private const val ARG_SECTION_NUMBER = "section_number"
@JvmStatic
fun newInstance(sectionNumber: Int): RightFragment {
return RightFragment().apply {
arguments = Bundle().apply {
putInt(ARG_SECTION_NUMBER, sectionNumber)
}
}
}
}
}