Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

개발자되기 프로젝트

[Android] WebView, Glide, RecyclierView onclickListener 본문

인프런/[인프런] 앱 8개를 만들면서 배우는 안드로이드 코틀린

[Android] WebView, Glide, RecyclierView onclickListener

Seung__ 2022. 3. 24. 22:50

1. Glide


안드로이드에서 웹으로부터 이미지를 불어올 수 있는 기능을 제공하는 라이브러리

 

1) dependency : 모듈 수준

 implementation 'com.github.bumptech.glide:glide:4.13.0'
  annotationProcessor 'com.github.bumptech.glide:compiler:4.13.0'

 

2) 인터넷 권한 부여: menifests

<uses-permission android:name="android.permission.INTERNET"/>

3) 사용 예시

val rv_img = itemView.findViewById<ImageView>(R.id.rv_image_area)
val rv_text = itemView.findViewById<TextView>(R.id.rv_text_area)

rv_text.text = item.titleText

//mainactivity context작동하겠다?
//Glide 라이브러리를 통해 웹에서 이미지를 가져와 imageView에 추가 가능
Glide.with(context).load(item.ImageUrl).into(rv_img)

 

 

 

2. WebView


 

layout에서 web을 표시하는 view

<WebView
    android:id="@+id/webView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>

사용 방법

val webView = findViewById<WebView>(R.id.webView)

webView.loadUrl(intent.getStringExtra("url").toString())

 

 

3. RecyclerView, onclick Listener


 1) RecyclerViewAdapter에서 ItemClick interface 선언.

 2) onBindViewholder에서 itemClick이 null이 아닐경우 onClick메서드 실행

interface ItemClick {
    fun onClick(view: View, position: Int)
}
var itemClick: ItemClick? = null


//holder와 data bind
override fun onBindViewHolder(holder: RvAdapter.ViewHolder, position: Int) {

    //클릭되었으면?
    if (itemClick != null){
        holder?.itemView.setOnClickListener {
            v -> itemClick!!.onClick(v, position)
        }
    }

    holder.bindItems(List[position])
}

 3) Adapter를 사용하는 activity에서 itemClick메서드 구현해서 넘겨줌.

        val recyclerView = findViewById<RecyclerView>(R.id.rv)
        val rvAdapter = RvAdapter(baseContext, items)
        recyclerView.adapter = rvAdapter

        rvAdapter.itemClick = object: RvAdapter.ItemClick{
            override fun onClick(view: View, position: Int) {
                val intent = Intent(baseContext, ViewActivity::class.java)
                intent.putExtra("url", items[position].ImageUrl)
                startActivity(intent)

            }

        }
Comments