Как отделить текст строки от списка? - PullRequest
0 голосов
/ 27 января 2019

Я пытался взять строку из списка, но я хочу, чтобы эта строка стала 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-х строкой, но тамвсе еще один, потому что я хочу использовать заголовок для просмотра, и я хочу использовать номер для идентификатора, который я хочу опубликовать.Могу ли я сделать это?Пожалуйста, помогите.

Это моя модель

 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 голосов
/ 27 января 2019

Не совсем понятно, в чем ваша проблема, но вы, кажется, хотите использовать только заголовок в блесне, тогда один из способов сделать это - переопределить toString, как вы сделали, но звучит так, как будто вы просто хотите название, так что я думаю, что это должно быть.

   override fun toString(): String {
            return title?:"no title provided"
    }

Это не меняет ваш подчиненный список или объекты в списке, поэтому при выборе элемента его можно получить с помощью метода onItemSelected, например, из документации .

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

0 голосов
/ 27 января 2019
val lData = listOf<String>()
lData.forEach {
  val data = it.split("(")
  val id = data[1].split(")")[0]
  val title = data[0]
}

лучше создать классную модель, такую ​​как "Movie", с правильными uid и названием или вы можете оставить в 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)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...