마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

한가지 더 pieChart 만들었는데 회전하고 클릭이 잘 안됩니다

0 추천

pieChart를 만들었습니다 RecyclerView 안에요 그래서 여러개가 한 fragment에 나오죠

저는 RecyclerView에 OnClick 주어서 넘기려 하는데 pieChart가 있는 부분은 클릭이 안되요

또 이게 원형차트잖아요? 회전을 하네요.. 해결하고 싶어요

package com.example.realcapston

import android.annotation.SuppressLint
import android.graphics.Color
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import lecho.lib.hellocharts.model.PieChartData
import lecho.lib.hellocharts.model.SliceValue
import lecho.lib.hellocharts.view.PieChartView


class ComAdapter(private val comList: ArrayList<ComModel>, private val clickListener: (ComModel) -> Unit) :
    RecyclerView.Adapter<ComAdapter.ViewHolder>() {
    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {

        val inflate = LayoutInflater.from(parent.context)
        val view = inflate.inflate(R.layout.custom_listview, parent, false)
        return ViewHolder(view)

    }


    override fun onBindViewHolder(holder: ViewHolder, position: Int) {
        holder.bind(comList[position], clickListener)

    }

    override fun getItemCount(): Int {
        return comList.size
    }

    class ViewHolder(itemView: View?) : RecyclerView.ViewHolder(itemView!!) {

        val comChart = itemView?.findViewById<PieChartView>(R.id.m_chart)
        val comNumber = itemView?.findViewById<TextView>(R.id.m_number)
        val comOs = itemView?.findViewById<TextView>(R.id.m_os)
        val comHostname = itemView?.findViewById<TextView>(R.id.m_hostname)

        @SuppressLint("SetTextI18n")
        fun bind(com: ComModel?, clickListener: (ComModel) -> Unit) {

            val pieData = ArrayList<SliceValue>()

            val memusing = com?.memuse?.toFloat()
            val memtotal = com?.memtotal?.toFloat()

            val result = (memusing?.div(memtotal!!))?.times(100)

            val pieChartData1 = PieChartData(pieData)

            pieData.add(
                SliceValue(
                    com?.memuse?.toFloat()!!,
                    Color.rgb(255, 0, 0)
                ).setLabel("$result%")
            )
            pieData.add(SliceValue(com.memtotal.toFloat(), Color.rgb(255, 140, 0)).setLabel(""))

            pieChartData1.setHasCenterCircle(true).setCenterText1("Memory 사용량")
                .centerText1FontSize = 20
            pieChartData1.setHasLabels(true)
//            pieChartData1.
//            pieChartData1.setSlicesSpacing()

            comChart?.pieChartData = pieChartData1
            comNumber?.text = "PC Number : " + com.number
            comOs?.text = "운영체제 : " + com.os
            comHostname?.text = "Hostname : " + com.hostname

            itemView.setOnClickListener { clickListener(com) }
        }

    }
}

//fun <T : RecyclerView.ViewHolder> T.listen(event: (position: Int, type: Int) -> Unit): T {
//    itemView.setOnClickListener {
//        event.invoke(adapterPosition, itemViewType)
//    }
//    return this
//}
Gamzal (340 포인트) 님이 2019년 10월 7일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...