Singleton: 단 하나의 instance
/ 인스턴스를 단 한번만 Static 메모리 영역에 할당하고 이 객체를 여러곳에서 호출하더라도 실제로 생성은 최초의
인스턴스만 사용
MainActivity에서 name/list/array를 통해
singleton 클래스를 거쳐 Sub activity로 데이터 넘겨줌
activity_main.xml
<EditText
android:layout_width="327dp"
android:layout_height="75dp"
android:inputType="textPersonName"
android:text="Name"
android:ems="10"
android:id="@+id/editText"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.49"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintHorizontal_bias="0.501"/>
<Button
android:id="@+id/move"
android:text="Button"
android:layout_width="152dp"
android:layout_height="59dp"
app:layout_constraintTop_toBottomOf="@+id/editText"
android:layout_marginTop="44dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"/>
activity_sum.xml
<TextView
android:id="@+id/textView"
android:text="TextView"
android:textSize="30dp"
android:layout_width="366dp"
android:layout_height="84dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"/>
MainActivity
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val editText = findViewById<EditText>(R.id.editText)
val move = findViewById<Button>(R.id.move)
move.setOnClickListener{
// Singleton의 chicken을 통해 데이터 전달하기 위해서 chicken을 호출
Singleton.chicken = editText.text.toString()
//이동
val intent = Intent(this, SubActivity::class.java)
startActivity(intent)
}
}
}
Singleton(class)
// main에서 접근해서 서버에서도 접근 가능하도록?
class Singleton {
companion object{
// chicken을 통해 데이터 전달
var chicken:String? = null
}
}
SubActivity
class SubActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_sub)
val textView = findViewById<TextView>(R.id.textView)
textView.text = Singleton.chicken
}
}
'안드로이드' 카테고리의 다른 글
[Android] 동적버튼 (0) | 2022.04.03 |
---|---|
[Android] SQLite (0) | 2022.04.02 |
[Android] Preferences (0) | 2022.03.31 |
[Android] Json (0) | 2022.03.31 |
[Android] File(추후 작성) (0) | 2022.03.31 |
댓글