如何从列表中分离出一些字符串文本?

时间:2019-01-27 11:44:06

标签: android string kotlin

我试图从列表中获取一个字符串,但我想将该字符串分隔为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()

}

2 个答案:

答案 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

获得ID。