Android 如何为Kotlin创建进度条对话框

Android 如何为Kotlin创建进度条对话框,android,kotlin,Android,Kotlin,如何为kotlin定制progressbar对话框 我想我应该把它放在setonclicklistener里 我已经定制了ProgressBarXML 但我不在科特林激活这个progressbar 在谷歌 我不知道我的代码中是否有活动 package com.korea50k.tracer.ranking import android.content.Context import android.content.Intent import android.util.Log import a

如何为kotlin定制progressbar对话框

我想我应该把它放在setonclicklistener里

我已经定制了ProgressBarXML 但我不在科特林激活这个progressbar

在谷歌

我不知道我的代码中是否有活动

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)
        }
    }
}
package com.korea50k.tracer.ranking
导入android.content.Context
导入android.content.Intent
导入android.util.Log
导入android.view.LayoutInflater
导入android.view.view
导入android.view.ViewGroup
导入androidx.recyclerview.widget.recyclerview
导入com.korea50k.tracer.R
导入com.korea50k.tracer.dataClass.InfoData
导入kotlinx.android.synthetic.main.recycler\u rankfragment\u item.view*
类RankRecycleServiceAdapterMap(val-mdata:ArrayList):RecyclerView.Adapter(){
变量上下文:上下文?=null
//생성된 뷰 홀더에 데이터를 바인딩 해줌.
覆盖onBindViewHolder(holder:mViewHolder,位置:Int){
val singleItem=mdata[位置]
风险值排名=排名+1
var cutted=singleItem.mapTitle!!.split(“| |”)
//데이터 바인딩
holder.rank.text=ranking.toString()
holder.maptitle.text=剪切[0]
holder.execute.text=singleItem.execute.toString()
//排名에 따라 트로피 색 바뀌게 하는 부분
如果(排名==1)
持有者.等级.挫折背景资源(R.drawable.ic_1)
否则如果(排名==2)
持有者.等级.挫折背景资源(R.drawable.ic_2)
否则如果(排名==3)
持有者.等级.挫折背景资源(R.drawable.ic_3)
其他的
持有者.等级.挫折背景资源(R.drawable.ic_4)
//클릭하면 맵 상세보기 페이지로 이동
holder.itemView.setOnClickListener{
val nextint=Intent(上下文,RankRecyclerItemClickActivity::class.java)
nextint.putExtra(“MapTitle”,singleItem.MapTitle)//MapTitle정보 인텐트로 넘김
上下文!!.startActivity(nextIntent)
}
}
//뷰 홀더 생성
override fun onCreateViewHolder(父级:ViewGroup,viewType:Int):mViewHolder{
val view=LayoutInflater.from(parent.context).充气(R.layout.recycler\u rankfragment\u项目,parent,false)
Log.d(“rank”,“onCreateViewHolder”호출")
context=parent.context
返回mViewHolder(视图)//视图객체는 한개의 리사이클러뷰가 디자인 되어 있는 레이아웃을 의미
}
//项目사이즈, 데이터의 전체 길이 반ㅎ환
重写getItemCount():Int{
Log.d(“等级”데이터 크기 “+mdata.size.toString())
//返回10//TODO갯수 조절 여기서
返回mdata.size
}
//여기서 项目을 文本视图에 옮겨줌
内部类mViewHolder(视图:视图):RecyclerView.ViewHolder(视图!!){
var rank=view.rankingFragmentCountTextView
var maptitle=view.rankingFragmentMapTitleTextView
var execute=view.rankingFragmentExecuteTextView
}
}
包com.korea50k.tracer.ranking
导入android.content.Intent
导入androidx.appcompat.app.appcompat活动
导入android.os.Bundle
导入android.util.Log
导入androidx.recyclerview.widget.LinearLayoutManager
导入com.bumptech.glide.glide
导入com.google.firebase.firestore.FirebaseFirestore
导入com.google.firebase.firestore.Query
导入com.google.firebase.storage.firebase存储
导入com.korea50k.tracer.R
导入com.korea50k.tracer.dataClass.InfoData
导入com.korea50k.tracer.dataClass.RankRecyclerItemClickItem
导入com.korea50k.tracer.dataClass.RankingData
导入kotlinx.android.synthetic.main.activity\u rank\u recycler\u item\u单击*
导入kotlinx.android.synthetic.main.fragment_ranking.view*
类RankRecyclerItemClickActivity:AppCompatActivity(){
lateinit var mapRankingDownloadThread:线程
var arrRankingData:ArrayList=arrayListOf()
var rankingData=rankingData()
重写创建时的乐趣(savedInstanceState:Bundle?){
super.onCreate(savedInstanceState)
setContentView(R.layout.activity\u rank\u recycler\u item\u click)
val intent=getIntent()
//전달 받은 값으로 标题설정
var mapTitle=intent.extras?.getString(“mapTitle”).toString()
var cutted=mapTitle.split(“| |”)
RankRecyclerMattile.text=剪切[0]
//TODO:ImageView에 이미지 박는 코드 (火力基地)
val imageView=rankRoutePriview
val storage=FirebaseStorage.getInstance(“gs://tracer-9070d.appspot.com/”)
val mapImageRef=storage.reference.child(“mapImage”).child(mapTitle)
mapImageRef.downloadUrl.addOnCompleteListener{task->
如果(任务成功){
//滑翔이용하여 이미지뷰에 로딩
Log.d(“ssmm11”이미지 뷰 로드 성공 : “+mapImageRef.downloadUrl)
滑翔(this@RankRecyclerItemClickActivity)
.load(任务.result)
.覆盖(1024980)
.into(图像视图)
}否则{
Log.d(“ssmm11”이미지 뷰 로드 실패")
}
}
mapRankingDownloadThread=线程(可运行{
val db=FirebaseFirestore.getInstance()
db.collection(“rankingMap”).document(mapTitle).collection(“ranking”).orderBy(“challengerTime”,Query.Direction.升序)
.get()
.addOnSuccessListener{result->
用于(结果中的文档){
rankingData=document.toObject(rankingData::class.java)
arrRankingData.add(rankingData)
}
//레이아웃 매니저 추가
rankRecyclerItemClickRecyclerView.layoutManager=LinearLayoutManager(此)
//阿德帕特추가
Log.d(“ssmm11”받아옴 ? = “+arrRankingData)
兰克瑞特姆