Как скрыть первый параметр в адаптере утилита просмотра? - PullRequest
0 голосов
/ 07 февраля 2020

Как скрыть первый параметр, чтобы пользователь не мог его увидеть. это мои json данные

{
    "api_status": 1,
    "api_message": "success",
    "api_authorization": "You are in debug mode !",
    "data": [  
        {
            "id": 7,
            "title": "judul5",
            "file": "materipramugari.pdf",
            "isi_materi": "<p>dfs</p>",
            "created_at": "2020-02-04 13:46:41",
            "updated_at": "2020-02-04 13:46:42"
        },
        {
            "id": 6,
            "title": "judul4",
            "file": "materipramugari.pdf",
            "isi_materi": "<p>asdasd</p>",
            "created_at": "2020-02-04 13:46:26",
            "updated_at": "2020-02-04 13:46:26"
        },
        {
            "id": 5,
            "title": "judul3",
            "file": "materipramugari.pdf",
            "isi_materi": "<p>asdasd</p>",
            "created_at": "2020-02-04 13:46:08",
            "updated_at": "2020-02-04 13:46:08"
        },
    ],
    "api_http": 200
}

а это мой адаптер:

class AdapterAuthor (var item: ArrayList<ModelAuthor>?, val ctx: Context)
    : RecyclerView.Adapter<AdapterAuthor.ViewHolder>(){

    lateinit var sesionDayNight: SesionDayNight
    lateinit var sharedPrefDetailBerita : SharedPrefDetailBerita

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
        val itemView = LayoutInflater.from(parent.context).inflate(R.layout.adapter_olahraga, parent, false)
        sesionDayNight = SesionDayNight(parent.context)
        sharedPrefDetailBerita = SharedPrefDetailBerita(parent.context)
        return ViewHolder(itemView)
    }

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

    @RequiresApi(Build.VERSION_CODES.O)
    override fun onBindViewHolder(holder: ViewHolder, position: Int) {
        val data = this.item?.get(position)

        val hitam = Color.parseColor("#3D3939")
        val putih = Color.parseColor("#FFFFFF")

        val ids = data?.idberita!!.get(position)
        Glide.with(ctx).load(data.image).placeholder(R.drawable.logo3).into(holder.img)
        holder.judul.text = data.idberita
        holder.subjudul.setHtml(data.subtitle,  HtmlHttpImageGetter(holder.subjudul))

        val tgl = data.tanggal
        rawSimpleDate(tgl)
        val current = LocalDateTime.now()
        val formatter = DateTimeFormatter.ofPattern("dd MMMM yyyy")
        val formatted = current.format(formatter)

        if (rawSimpleDate(tgl).contains(formatted)){
            holder.tanggal.text = "Hari ini " + rawSimpleTime(tgl)
        }else{
            holder.tanggal.text = "Update At "+ rawSimpleDate(tgl)
        }


    }

    inner class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
        val base : CardView = view.findViewById(R.id.base_list_olahraga)
        val detail : LinearLayout = view.findViewById(R.id.clic_rc_olahraga)
        val img: ImageView = view.findViewById(R.id.img_olahraga)
        val judul: TextView = view.findViewById(R.id.tv_judul_olahraga)
        val subjudul: HtmlTextView = view.findViewById(R.id.wv_subtitle_olahraga)
        val tanggal: TextView = view.findViewById(R.id.tv_tanggal_olahraga)
    }

    @SuppressLint("SimpleDateFormat")
    private fun rawSimpleTime(timeRaw: String?): String {
        val formatter = SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss")
        var time: Date? = null
        try {
            time = formatter.parse(timeRaw)
        } catch (e: ParseException) {
            e.printStackTrace()
        }

        if (time != null) {
            val formatter_show = SimpleDateFormat("HH:mm")
            return formatter_show.format(time)
        }

        return ""
    }

    @SuppressLint("SimpleDateFormat")
    private fun rawSimpleDate(dateRaw: String?): String {
        val formatter = SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss")
        var date: Date? = null

        try {
            date = formatter.parse(dateRaw)
        } catch (e: ParseException) {
            e.printStackTrace()
        }
        if (date != null) {
            val formatter_show = SimpleDateFormat("dd MMMM yyyy")
            return formatter_show.format(date)
        }
        return ""
    }

}

Ответы [ 2 ]

0 голосов
/ 07 февраля 2020

Этого можно добиться разными способами

  1. Удалить первый элемент из списка во время привязки адаптера
  2. Возвращать пустой вид из onBindViewHolder, когда позиция равна 0
0 голосов
/ 07 февраля 2020

внутри onBindViewHolder записать условие наподобие

if(position!=0){ 
// Continue operation
} 

Таким образом, оно пропускает 1-й элемент и связывает другие элементы. Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...