2026/02/24

오늘의 이야기

https://developer.android.com/courses/pathways/android-basics-kotlin-four



 


Add a button to an app  |  Android Basics in Kotlin - Intro - Add a button  |  Android Developers


Learn more concepts in Kotlin—including classes, objects, and conditionals—to create an interactive app for your users.


developer.android.com




앱을 하나 만들어 보았다. Kotlin 으로 하는 첫번째 프로젝트. 이 걸 해 보는 이유는 java 만으로 하는 앱은 많이 해 보았는데, kotlin 으로 하는 코딩은 처음인지라, 배워보고자 해서 developer 에서 코트랩을 살펴보았다.


 


ㅋ 구현되는 모습은 어떨까 ?


 



주사위 동작


동작은 그냥 하는 주사위 모양이다.  동작하는 기능 구현은 아래 소스를 보는 도움이 될 것 같다. 


import android.os.Bundle
import android.util.Log
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import com.billcoreatech.kotlinexam0115.databinding.ActivityMain2Binding

class MainActivity2 : AppCompatActivity() {
var TAG: String = "MainActivity2";

lateinit var binding: ActivityMain2Binding ;

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

binding.button.setOnClickListener{
Log.e(TAG, "");
Toast.makeText(this, rollDice(), Toast.LENGTH_SHORT).show()

}
}

private fun rollDice(): String {
val dice = Dice(6)
val diceRoll = dice.roll()
binding.textView3.setText(diceRoll.toString())
when(diceRoll) {
1 -> binding.imageView2.setImageResource(R.drawable.dice_1)
2 -> binding.imageView2.setImageResource(R.drawable.dice_2)
3 -> binding.imageView2.setImageResource(R.drawable.dice_3)
4 -> binding.imageView2.setImageResource(R.drawable.dice_4)
5 -> binding.imageView2.setImageResource(R.drawable.dice_5)
6 -> binding.imageView2.setImageResource(R.drawable.dice_6)
}
return diceRoll.toString()
}
}

 


이게 java 로 구현이 되면 아래와 같이 이렇게 구현이 될 것 같다.


import android.os.Bundle;
import android.view.View;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

import com.billcoreatech.kotlinexam0115.databinding.ActivityMain2Binding;

public class MainActivity3 extends AppCompatActivity {

ActivityMain2Binding binding ;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
binding = ActivityMain2Binding.inflate(getLayoutInflater());
setContentView(binding.getRoot());

binding.button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(getApplicationContext(), rollDice() , Toast.LENGTH_SHORT).show();
}
});
}

private String rollDice() {
Dice dice = new Dice(6);
int iDice = dice.roll() ;
binding.textView3.setText(String.valueOf(iDice));
switch (iDice) {
case 1: binding.imageView2.setImageResource(R.drawable.dice_1); break ;
case 2: binding.imageView2.setImageResource(R.drawable.dice_2); break ;
case 3: binding.imageView2.setImageResource(R.drawable.dice_3); break ;
case 4: binding.imageView2.setImageResource(R.drawable.dice_4); break ;
case 5: binding.imageView2.setImageResource(R.drawable.dice_5); break ;
case 6: binding.imageView2.setImageResource(R.drawable.dice_6); break ;
}

return String.valueOf(iDice) ;
}

}

아직은 어떤게 더 코드 작업이 수월하지는 잘 모르겠다.  이런 걸 여러번 하다 보면,  알게 될려는지...  layout 은 그대로 하나 만들어서 했고,  구현하는 부분만 kotlin 으로, java 로 만들어 보았다.


 


어떻게 달라질지...





댓글 없음:

댓글 쓰기

오늘의 이야기

그것도 종이로 말이에요. ㅋㅋㅋ 이런일이 아직 갈길이 멀어요...