我试图从列表中获取一个字符串,但我想将该字符串分隔为2。
这是我的列表[Aquaman (1), Bumblebee (3), Spiderman into the spider verse (4), Bohemian Rhapsody (7), A Star Is Born (8), Mary Poppins Returns (9), Captain Marvel (10), Ralph Breaks the Internet (11), Avengers: Endgame (12)]
我想将标题和数字分开成为2个字符串,但是仍然有一个,因为我想将标题用于查看,并且想将数字用于我要发布的ID。我可以这样做吗?请帮忙。
这是我的模特
class Movie2 (
@SerializedName("id")
var movieId: String? = null,
@SerializedName("description")
var synopsis: String? = null,
@SerializedName("release_date")
var release: String? = null,
@SerializedName("poster")
var poster: String? = null,
@SerializedName("genre")
var genre: String? = null,
@SerializedName("title")
var title: String? = null
)
{
override fun toString(): String {
return "$title ($movieId)"
}
}
这是我必须放置数据的地方
override fun showMovieList(data: List<Movie2>) {
movies = data[0]
reviews.clear()
reviews.addAll(data)
data.forEach {
title = it.title!!
id = it.movieId!!
}
Log.v("id", "" + id)
Log.v("title", "" + title)
searchSpn.adapter = ArrayAdapter<Movie2>(this, R.layout.spinner_item, reviews)
movie = searchSpn.selectedItem.toString()
}
答案 0 :(得分:0)
val lData = listOf<String>()
lData.forEach {
val data = it.split("(")
val id = data[1].split(")")[0]
val title = data[0]
}
最好使用适当的uid和标题创建类似“ Movie”的类模型 或者您可以像这样保存在hashMap()
val lData = listOf<String>()
val lisofMovie = mutableListOf<HashMap<String, String>>()
lData.forEach {
val data = it.split("(")
val id = data[1].split(")")[0]
val title = data[0]
val lMovie = HashMap<String, String>()
lMovie["id"] = id
lMovie["title"] = title
lisofMovie.add(lMovie)
}
答案 1 :(得分:0)
目前还不清楚您的问题是什么,但是您似乎只想使用微调器中的标题,那么执行此操作的一种方法是像您所做的那样覆盖toString
,但这听起来像您只想要标题,所以我认为应该是。
override fun toString(): String {
return title?:"no title provided"
}
这不会更改您的下标列表或列表中的对象,因此当您选择一个项目时,可以通过onItemSelected方法(例如,从Browser support for linear-gradient()
中获得它)。
class SpinnerActivity : Activity(), AdapterView.OnItemSelectedListener {
override fun onItemSelected(parent: AdapterView<*>, view: View, pos: Int, id: Long) {
// An item was selected. You can retrieve the selected item using
// parent.getItemAtPosition(pos)
}
override fun onNothingSelected(parent: AdapterView<*>) {
// Another interface callback
}
}
在您的情况下,您应该获取Movie2类的实例,然后可以通过调用parent.movieId