Как я могу сделать диалоговое окно индикатора выполнения настраиваемым для kotlin
Я думаю, что я должен поместить его в setonclicklistener.
Я уже делаю пользовательский индикатор выполнения XML, но я не активировал это индикатор выполнения в kotlin
в Google
![enter image description here](https://i.stack.imgur.com/CzquC.png)
![enter image description here](https://i.stack.imgur.com/NnSQU.png)
I не знаю, активный в моем коде
package com.korea50k.tracer.ranking
import android.content.Context
import android.content.Intent
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
import com.korea50k.tracer.R
import com.korea50k.tracer.dataClass.InfoData
import kotlinx.android.synthetic.main.recycler_rankfragment_item.view.*
class RankRecyclerViewAdapterMap (val mdata :ArrayList<InfoData>) : RecyclerView.Adapter<RankRecyclerViewAdapterMap.mViewHolder>() {
var context : Context? = null
//생성된 뷰 홀더에 데이터를 바인딩 해줌.
override fun onBindViewHolder(holder: mViewHolder, position: Int) {
val singleItem = mdata[position]
var ranking = position + 1
var cutted = singleItem.mapTitle!!.split("||")
//데이터 바인딩
holder.rank.text = ranking.toString()
holder.maptitle.text = cutted[0]
holder.execute.text = singleItem.execute.toString()
//ranking에 따라 트로피 색 바뀌게 하는 부분
if (ranking == 1)
holder.rank.setBackgroundResource(R.drawable.ic_1)
else if (ranking == 2)
holder.rank.setBackgroundResource(R.drawable.ic_2)
else if (ranking == 3)
holder.rank.setBackgroundResource(R.drawable.ic_3)
else
holder.rank.setBackgroundResource(R.drawable.ic_4)
//클릭하면 맵 상세보기 페이지로 이동
holder.itemView.setOnClickListener{
val nextIntent = Intent(context, RankRecyclerItemClickActivity::class.java)
nextIntent.putExtra("MapTitle", singleItem.mapTitle) //mapTitle 정보 인텐트로 넘김
context!!.startActivity(nextIntent)
}
}
//뷰 홀더 생성
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): mViewHolder {
val view = LayoutInflater.from(parent.context).inflate(R.layout.recycler_rankfragment_item, parent, false)
Log.d("rank", "onCreateViewHolder호출")
context = parent.context
return mViewHolder(view) //view 객체는 한개의 리사이클러뷰가 디자인 되어 있는 레이아웃을 의미
}
//item 사이즈, 데이터의 전체 길이 반ㅎ환
override fun getItemCount(): Int {
Log.d("rank", "데이터 크기 " + mdata.size.toString())
//return 10 //TODO 갯수 조절 여기서
return mdata.size
}
//여기서 item을 textView에 옮겨줌
inner class mViewHolder(view: View) : RecyclerView.ViewHolder(view!!) {
var rank = view.rankingFragmentCountTextView
var maptitle = view.rankingFragmentMapTitleTextView
var execute = view.rankingFragmentExecuteTextView
}
}
package com.korea50k.tracer.ranking
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import androidx.recyclerview.widget.LinearLayoutManager
import com.bumptech.glide.Glide
import com.google.firebase.firestore.FirebaseFirestore
import com.google.firebase.firestore.Query
import com.google.firebase.storage.FirebaseStorage
import com.korea50k.tracer.R
import com.korea50k.tracer.dataClass.InfoData
import com.korea50k.tracer.dataClass.RankRecyclerItemClickItem
import com.korea50k.tracer.dataClass.RankingData
import kotlinx.android.synthetic.main.activity_rank_recycler_item_click.*
import kotlinx.android.synthetic.main.fragment_ranking.view.*
class RankRecyclerItemClickActivity : AppCompatActivity() {
lateinit var mapRankingDownloadThread: Thread
var arrRankingData: ArrayList<RankingData> = arrayListOf()
var rankingData = RankingData()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_rank_recycler_item_click)
val intent = getIntent()
//전달 받은 값으로 Title 설정
var mapTitle = intent.extras?.getString("MapTitle").toString()
var cutted = mapTitle.split("||")
rankRecyclerMapTitle.text = cutted[0]
//TODO:ImageView 에 이미지 박는 코드 (firebase)
val imageView = rankRoutePriview
val storage = FirebaseStorage.getInstance("gs://tracer-9070d.appspot.com/")
val mapImageRef = storage.reference.child("mapImage").child(mapTitle)
mapImageRef.downloadUrl.addOnCompleteListener { task ->
if (task.isSuccessful) {
// Glide 이용하여 이미지뷰에 로딩
Log.d("ssmm11", "이미지 뷰 로드 성공 : "+mapImageRef.downloadUrl)
Glide.with(this@RankRecyclerItemClickActivity)
.load(task.result)
.override(1024, 980)
.into(imageView)
} else {
Log.d("ssmm11", "이미지 뷰 로드 실패")
}
}
mapRankingDownloadThread = Thread(Runnable {
val db = FirebaseFirestore.getInstance()
db.collection("rankingMap").document(mapTitle).collection("ranking").orderBy("challengerTime", Query.Direction.ASCENDING)
.get()
.addOnSuccessListener { result ->
for (document in result) {
rankingData = document.toObject(RankingData::class.java)
arrRankingData.add(rankingData)
}
//레이아웃 매니저 추가
rankRecyclerItemClickRecyclerView.layoutManager = LinearLayoutManager(this)
//adpater 추가
Log.d("ssmm11", "받아옴 ? = "+ arrRankingData)
rankRecyclerItemClickRecyclerView.adapter = RankRecyclerViewAdapterTopPlayer(arrRankingData)
}
.addOnFailureListener { exception ->
}
})
mapRankingDownloadThread.start()
rankRecyclerMoreButton.setOnClickListener{
val nextIntent = Intent(this, RankingMapDetailActivity::class.java)
nextIntent.putExtra("MapTitle", mapTitle)
startActivity(nextIntent)
}
}
}