Android

인프런-개복치개발자 강의 - 망고플레이트 앱 만들기

Developer-Michelle 2022. 4. 22. 10:19

2022. 2. 13. 10:42 에 작성

 

<인프런 - 망고플레이트 앱 만들기>

*Splash 만드는 방법: New -> Activity -> Empty Activity

activity_splash.xml 가서 화면 꾸미기

SplashActivity.kt 가서 액티비티 시작 (Handler부터)

AndroidManifest.xml 가서 <intent-filter> 위치를 바꾸기(mainactivity 이전으로)

*제목 없애고 싶은 경우

values -> themes.xml -> <item name="windowNoTitle">true</item> 추가

*테두리 둥글게 만들기 (radius로 검색해서 찾기)

drawable 폴더에 넣기

New -> drawable resourcefile 생성하고 검색한 내용 붙여넣기

<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" android:padding = "10dp"> <solid android:color="#ffffff"></solid> <corners android:bottomLeftRadius="15dp" android:bottomRightRadius="15dp" android:topLeftRadius="15dp" android:topRightRadius="15dp"></corners> <stroke android:width="2dp" android:color="#BDBDBD"></stroke> </shape>

*Recyclerview 만들기

layout -> New -> Layout Resourcefile -> "rv_item".xml 만들기

activity_main.xml 에서 recyclerview 삽입

Adapter 만들기 (New -> Kotlin Class/File -> "RVAdapter".kt 만들기

전달해줄 데이터 담기 (New -> Kotlin Class/File -> "ContentsModel".kt만들기)

RVAdapter 에서 아래 내용 적기

class RVAdapter(val List : MutableList<ContentsModel>) : RecyclerView.Adapter<RVAdapter.ViewHolder>(){

override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RVAdapter.ViewHolder {

val v = LayoutInflater.from(parent.context).inflate(R.layout.rv_item,parent,false)

return ViewHolder(v)

}

override fun onBindViewHolder(holder: RVAdapter.ViewHolder, position: Int) {

holder.bindItems(List[position])

}

override fun getItemCount(): Int {

return List.size

}

inner class ViewHolder(itemView : View) : RecyclerView.ViewHolder(itemView){

fun bindItems(item : ContentsModel){

MainActivity에서 데이터랑 연결 :

private val items = mutableListOf<ContentsModel>()

items.add( )

MainActivity에서 어뎁터랑 연결:

val recyclerview = findViewById<RecyclerView>(R.id.rv)

val rvAdapter = RVAdapter(items)

recyclerview.adapter = rvAdapter

recyclerview.layoutManager = LinearLayoutManager(this)

여기서 사진을 두줄씩 정리하고 싶다면?

recyclerview.layoutManager = GridLayoutManager(this, 2)

이거로 바꾸기

rv_item.xml 에서 imageview, textview 각각 id 지정

RVAdapter에서 바인딩 시작

inner class ViewHolder(itemView : View) : RecyclerView.ViewHolder(itemView){

fun bindItems(item : ContentsModel){

val rv_text = itemView.findViewById<TextView>(R.id.rvTextArea)

val rv_img = itemView.findViewById<ImageView>(R.id.rvImageArea)

rv_text.text = item.titleText

}

Glide: 외부에 있는 이미지 url 불러오기

AndroidManifest.xml 에서 인터넷 접근 허용시키고 시작

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

WebView - 음식점 이름 클릭하면 망고플레이트 웹사이트로 넘어감

Firebase Auth -uid 값 받아오기

스플래시 화면에서

회원가입해서 로그인을 한 사람인지? -> MainActivity

아니면 처음 들어오는 사람인지? -> LoginActivity

Firebase Realtime Database(북마크한거 저장)

'Android' 카테고리의 다른 글

Firebase realtime database  (0) 2022.04.22
android 색상 태그 안먹히는 경우  (0) 2022.04.22
firebase  (0) 2022.04.22
RecyclerView 에서 LinearLayout 목록 간격 조절  (0) 2022.04.22
안드로이드 공부한 책 & 인강 모음  (0) 2022.04.22