kotlin은 이전에 특별히 바인딩이라는 것을 하지않아도 자동으로 되었었는데 2020년 초부터 binding을 해야하는 것으로 바뀌었고 강좌들은 이전 것과 이후 것이 혼재되어 헷갈리게 되어 있다.

 

view binding만 보면...

 

build.gradle ( module) 파일에

 

plugins {
      id 'com.android.application'
      id 'kotlin-android'
      id 'kotlin-android-extensions'
}

 

android {
...
    buildFeatures {
          viewBinding =true
    }

}

 

를 추가하고 왼쪽 위에 sync now를 눌러 싱크를 맞춘다.

 

그리고,  

 

<LinearLayout
        ...
       
tools:viewBindingIgnore="true" >
    ...
</LinearLayout>

 

위의 내용을 activity_main등의 레이아웃 파일에 넣으면 바인딩이 되지않으니 넣지말라!!

 

==========activity_main.xml====================

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Hello world"
android:id="@+id/myBtn"/>
</LinearLayout>

 

=============== MainActivity.kt============

 

import android.app.Activity
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import com.jstudio.coroutin.databinding.ActivityMainBinding

class MainActivity : AppCompatActivity() {
   private lateinit var binding:ActivityMainBinding

   override fun onCreate(savedInstanceState: Bundle?) {
      super.onCreate(savedInstanceState)
      binding = ActivityMainBinding.inflate(layoutInflater)
      setContentView(binding.root)

      binding.myBtn.text = "button works"
   }
}

'IT 통신 수학 과학 > 자바 안드로이드' 카테고리의 다른 글

React 설치 방법  (0) 2022.02.28
Response Status Code  (0) 2021.11.02
[Android/Kotlin] DataBinding(데이터바인딩)  (0) 2021.03.20
Android Studio : WebView 구현 오류 문제.  (0) 2021.02.22
안드로이드 파일 입출력 및 삭제  (0) 2020.12.16
AdapterView 다중선택  (0) 2020.11.02
AdapterView2  (0) 2020.11.01
ArrayAdapter  (0) 2020.10.28

<EditText
android:id="@+id/edit1"
android:layout_width="match_parent"
android:layout_height="wrap_content"

    />

<TextView

    android:id="@+id/text1"

    android:layout_width="match_parent"

    android:layout_height="wrap_content"

    android:text="smallBlueBig"

    android:textSize="30sp"

    android:bufferType="spannable"

     />

<TextView

    android:id="@+id/text2"

    android:layout_width="match_parent"

    android:layout_height="wrap_content"

    android:text="기타 태스트"

    android:textSize="30sp"

    android:linksClickable="true"

    android:textColorLink="#ffff00"

    android:bufferType="spannable"

     />

<Button

    android:id="@+id/arrow1"

    android:onClick="mOnClick"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:background="@drawable/cloud"

    android:textColor="#ff0000"

    android:text="ribbon"

    android:textSize="8pt"

    />

<Button

    android:id="@+id/arrow2"

    android:onClick="mOnClick"

    android:layout_width="200px"

    android:layout_height="100px"

    android:background="@drawable/cloud"

    android:textColor="#00ff00"

    android:text="ribbon"

    android:textSize="8pt"

    />

<Button

 

    android:id="@+id/arrow3"

    android:onClick="mOnClick"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:background="@drawable/ribbon"

    android:textColor="#0000ff"

    android:text="ribbon"

    android:textSize="8pt"

    />

<Button

    android:id="@+id/arrow4"

    android:onClick="mOnClick"

    android:layout_width="250px"

    android:layout_height="100px"

    android:background="@drawable/ribbon"

    android:textColor="#000000"

    android:text="ribbon"

    android:textSize="8pt"

    />

public class MainActivity extends AppCompatActivity {

@Override

protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

}

public void mOnClick(View v){

    switch(v.getId()){

        case  R.id.arrow1:

            Toast.makeText(this,"arrow1 clicked",0).show();

            break;

        case  R.id.arrow2:

            Toast.makeText(this,"arrow2 clicked",0).show();

            break;

        case  R.id.arrow3:

            Toast.makeText(this,"arrow3 clicked",0).show();

            break;

    }

}

}

 

==================================================

package com.jproject.mysturdy;

import androidx.appcompat.app.AppCompatActivity;

import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

import java.lang.reflect.Array;
import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {

   
@Override
   
protected void onCreate(Bundle savedInstanceState) {
       
super.onCreate(savedInstanceState);
        setContentView(
R.layout.activity_main);

       
ArrayAdapter<CharSequence> Adapter;
       
Adapter = ArrayAdapter.createFromResource(this, R.array.country, android.R.layout.simple_list_item_1);

       
ListView list = (ListView)findViewById(R.id.mylist);
       
list.setAdapter(Adapter);

       
list.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
       
list.setDivider(new ColorDrawable(Color.YELLOW));
       
list.setDividerHeight(5);

    }

}

 

+ Recent posts