我对Android非常陌生,我知道我不太了解术语,所以我会尽力解释自己,请耐心等待。
我有一个应用程序,我需要它有4个标签,其中3个会做同样的,如果我只能使用一个片段并且显示它几次会更好(所以我没有3个确切相同的fragment.kt文件),最后一个将有一个不同的片段。
所以这是我的MainActivity.kt(尚未完成)
class MainActivity : AppCompatActivity(), TabLayout.OnTabSelectedListener{
private lateinit var saleFragment1: SaleFragment1
private lateinit var saleFragment2: SaleFragment2
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
setSupportActionBar(toolbar)
init()
fab.setOnClickListener { view ->
//do something
}
}
private fun init(){
saleFragment1 = SaleFragment1()
saleFragment2 = SaleFragment2()
tabs.addTab(tabs.newTab().setText(getString(R.string.tab_0)))
tabs.addTab(tabs.newTab().setText(getString(R.string.tab_1)))
tabs.addTab(tabs.newTab().setText(getString(R.string.tab_2)))
tabs.addTab(tabs.newTab().setText(getString(R.string.tab_3)))
tabs.addOnTabSelectedListener(this)
supportFragmentManager
.beginTransaction()
.add(R.id.container,saleFragment1)
.commit()
}
override fun onTabReselected(tab: TabLayout.Tab?) {}
override fun onTabUnselected(tab: TabLayout.Tab?) {}
override fun onTabSelected(tab: TabLayout.Tab?) {
when (tab!!.position){
0 -> supportFragmentManager
.beginTransaction()
.replace(R.id.container, saleFragment1)
.commit()
1 -> supportFragmentManager
.beginTransaction()
.replace(R.id.container, saleFragment2)
.commit()
2 -> supportFragmentManager
.beginTransaction()
.replace(R.id.container,saleFragment1)
.commit()
3 -> supportFragmentManager
.beginTransaction()
.replace(R.id.container,saleFragment1)
.commit()
}
}
override fun onBackPressed() {
val builder = AlertDialog.Builder(this)
builder.setMessage("¿Seguro que desea salir?")
builder.setPositiveButton("Salir") { dialog, which ->
finish()
}
val dialog : AlertDialog = builder.create()
dialog.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_main, 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.
return when (item.itemId) {
R.id.action_product-> {
var intent = Intent(this, MenuProduct::class.java)
startActivity(intent)
return true
}
R.id.action_report -> {
var intent = Intent(this, MenuReport::class.java)
startActivity(intent)
return true
}
else -> super.onOptionsItemSelected(item)
}
}
}
如果有人指出我正确的方向,那将是很棒的。我需要能够在tab1中捕获一些数据,然后返回到tab2和tab3(甚至tab4以执行不同的操作),然后返回到任一选项卡以继续将内容添加到列表中。
嗯,这是一个问题。
现在,在我的片段中,我使用了2个类:LOGSale和ListSale。我想使用activity_main.xml
中声明的FloatingActionButton来获取这两个对象并将它们插入到我的数据库中。因此,如果我在tab1中,它必须从相应的片段中抓取这两个对象,并能够用它们做些事情。有什么想法吗?
提前致谢。