Как я делаю диалог индикатора выполнения для Kotlin - PullRequest
1 голос
/ 09 февраля 2020

Как я могу сделать диалоговое окно индикатора выполнения настраиваемым для kotlin

Я думаю, что я должен поместить его в setonclicklistener.

Я уже делаю пользовательский индикатор выполнения XML, но я не активировал это индикатор выполнения в kotlin

в Google

enter image description here

enter image description here

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