안드로이드 프로그래밍[Kotiln Code]/안드로이드 초기 강좌

[안드로이드] 액티비티 1( 이동 )

훈츠 2020. 4. 15. 09:20
반응형

안녕하세요. 훈츠 입니다. 이번시간 부터 액티비티 사용 방법에 대해 포스팅합니다. 


인텐트 ( Intent ) 

 

인텐트는 앱이 가진 다른 요소( 액티비티, 서비스, 브로드캐스트 ) 들의 제어를 시스템에 요청할때 이에 대한 정보를 담는 객체 입니다. 

  • Intent( packageContext : Context, cls : Class<?>

 

액티비티 클래스 리터럴 이란?

 

클래스 리터럴은 '클래스 자체의 정보'를 담고 클래스를 '제어할 수 있는 함수'들을 가진 고정된 객체 입니다. ClassName::class.java

 

 

 

인텐트에 정보 전달

 

인텐트에 정보를 담아 전달할때, 기본 데이터형은 putExtra() 함수를 통해 전달하고, 받을때는 get자료형Extra() 함수를 통해 받습니다. 그외 유저가 만든 클래스를 보내고 받을때는 ParcelableSerializable 을 이용 합니다. 

  • putExtra ( "name", "보낼 내용 기입")
  • val intent = getIntent( )
  • getStringExtra ( "name" )

 

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
32
33
34
35
36
//훈스 블로그---------------------------------------------------------------------------------------------------코드//
class MainActivity : AppCompatActivity() {
 
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
 
        bt_move.setOnClickListener(object: View.OnClickListener{
            override fun onClick(v: View?) {
                val intent = Intent(applicationContext , Main2Activity::class.java)
                intent.putExtra("main","메인에서 왔어요")
                intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP or Intent.FLAG_ACTIVITY_CLEAR_TOP)
                startActivity(intent)
            }
        })
    }
}
 
class Main2Activity : AppCompatActivity() {
 
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main2)
 
        val intent = getIntent()
        textView.text = intent.getStringExtra("main")
 
        bt_finish.setOnClickListener(object: View.OnClickListener{
            override fun onClick(v: View?) {
                finish()
            }
        })
    }
}
 
 
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white">cs
반응형