【发布时间】:2022-11-27 15:30:54
【问题描述】:
我正在开发一个应用程序来存储电视节目信息。用户可以添加节目,然后查看其收藏。我希望在添加节目时也能够添加季节,如果需要的话还可以添加几个。
我有 Show 和 Season 模型,我创建了一个 AddShowActivity 和它的 add_show_activity 布局。我不久前开始使用 Android Studio,所以也许这不是最佳选择,但我想在我的布局中使用 RecyclerView,然后回收 item_add_season 布局,以便添加尽可能多的季节创建一个节目。
然而,这给我带来了几个问题,我找不到任何答案,目前不知道该怎么做。我在我的add_show_activity 中放置了一个Add Season 按钮,它应该向我的 RecyclerView 添加一个新的item_add_season,但是我不知道我应该怎么做。即使我还没有尝试过,我也想知道如何从我的适配器外部检索我的数据。
所以我一直想知道是否可以使用这样的 RecyclerView 来向我的表单添加几个季节?如果没有,我应该怎么做呢?
下面是我的AddShowActivity 和我的AddSeasonAdapter(recyclerview 适配器)。
class AddShowActivity : AppCompatActivity() {
private lateinit var editTextName: EditText
private lateinit var editTextNote: EditText
private lateinit var confirmButton: Button
private lateinit var addSeasonButton: Button
private lateinit var seasonsRecyclerView: RecyclerView
@SuppressLint("NewApi")
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_add_show)
editTextName = findViewById(R.id.name_input)
editTextNote = findViewById(R.id.note_input)
seasonsRecyclerView = findViewById(R.id.seasons_recycler_view)
seasonsRecyclerView.adapter = AddSeasonAdapter(this, 0, R.layout.item_add_season)
seasonsRecyclerView.layoutManager = LinearLayoutManager(this)
confirmButton = findViewById(R.id.confirm_button)
confirmButton.setOnClickListener{
sendForm()
}
addSeasonButton = findViewById(R.id.add_season_button)
addSeasonButton.setOnClickListener {
// Add a season to the RecyclerView and update its seasonsCount
}
}
@SuppressLint("NewApi")
private fun sendForm(){
val repo = ShowRepository()
val showName = editTextName.text.toString()
val showNote = parseInt(editTextNote.text.toString())
val seasonsList = arrayListOf<SeasonModel>() // Get info from seasons adapter and create seasons list
val show = ShowModel(UUID.randomUUID().toString(), showName, showNote, seasonsList)
repo.insertShow(show)
this.finish()
}
}
class AddSeasonAdapter(val context: AddShowActivity, private var seasonsCount: Int, private val layoutId: Int) : RecyclerView.Adapter<AddSeasonAdapter.ViewHolder>() {
class ViewHolder(view: View) : RecyclerView.ViewHolder(view){
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
val view = LayoutInflater.from(parent.context).inflate(layoutId, parent, false)
return ViewHolder(view)
}
@SuppressLint("NewApi")
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
}
override fun getItemCount(): Int = seasonsCount
}
【问题讨论】:
标签: android forms android-recyclerview