Я хочу изменить изображение и текст в textview, когда условие 'If' внутри обработчика seekBar выполнено, но код внутри этого условия не выполняется. Я пробовал разные способы, например, я поставил жестко закодированные значения, такие как if (progress == 100) {}, но даже это не выполняется. Пожалуйста, покажите мне, что мне делать сейчас. Заранее спасибо !!
open class MainActivity : AppCompatActivity() {
var imageItem: MutableList<String> = mutableListOf<String>()
var timeItem: MutableList<Int> = mutableListOf<Int>()
// var slideTime: MutableList<Int> = mutableListOf<Int>(2000, 10000, 11000)
var music: String? = null
var gson: Gson = GsonBuilder().create()
var mp: MediaPlayer? = null
val retrofit =
Retrofit.Builder()
.baseUrl("http://165.22.214.137:8002/")
.addConverterFactory(GsonConverterFactory.create(gson))
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.build()
val jsonPlaceHolderAPI = retrofit.create(
JsonPlaceHolderAPI::class.java
)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
imageItem.add(R.drawable.ic_launcher_background.toString())
imageSlider.setSliderTransformAnimation(SliderAnimations.FADETRANSFORMATION);
getPosts()
imageSlider.setOnIndicatorClickListener(DrawController.ClickListener { position ->
imageSlider.setCurrentPagePosition(
position
)
})
button.setOnClickListener {
if (mp!!.isPlaying) {
mp!!.pause()
button.setBackgroundResource(R.drawable.ic_play_circle_outline_black_24dp)
} else {
mp!!.start()
button.setBackgroundResource(R.drawable.ic_pause_circle_outline_black_24dp)
}
}
}
//get Json data
fun getPosts(): List<String> {
val call = jsonPlaceHolderAPI.imagesDetails
var n = 0
call.enqueue(object : Callback<List<ImagePost>> {
override fun onResponse(
call: Call<List<ImagePost>>,
response: Response<List<ImagePost>>
) {
if (!response.isSuccessful) {
code.setText("Code:" + response.message())
}
val posts = response.body()!!
for (post in posts) {
var content = ""
n = post.media.size
for (i in 0 until n - 1) {
imageItem.add(post.media[i].image)
timeItem.add(post.media[i].ms)
}
music = post.audio
}
mp = MediaPlayer()
try {
var mytracking = SongTrack(timeItem)
mytracking.start()
mp!!.setDataSource(music)
mp!!.prepare()
seekBar.max = mp!!.duration
mp!!.start()
} catch (ex: Exception) {
}
val adapter = SliderAdapterExample(this@MainActivity, imageItem, n)
imageSlider.setSliderAdapter(adapter)
}
override fun onFailure(call: Call<List<ImagePost>>, t: Throwable) {
code.setText(t.message)
}
})
var flag:Boolean = true
seekBar.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {
override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) {
for(i in timeItem) {
if (progress == i) {
imageSlider.currentPagePosition = imageSlider.currentPagePosition + 1
code.setText("condition met")
}
}
}
override fun onStartTrackingTouch(seekBar: SeekBar?) {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
override fun onStopTrackingTouch(seekBar: SeekBar?) {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
})
return imageItem
}
inner class SongTrack(timeItem: MutableList<Int>) : Thread() {
override fun run() {
while (true) {
try {
sleep(100)
} catch (ex: Exception) {
}
runOnUiThread {
if (mp != null) {
seekBar.progress = mp!!.currentPosition
}
}
}
}
}
}