


1. activity_main.xml 코드
<androidx.appcompat.widget.LinearLayoutCompat
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center_horizontal"
tools:context=".MainActivity">
<TextView
android:id="@+id/tvName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20dp"
android:text="사용자 이름"/>
<TextView
android:id="@+id/tvEmail"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20dp"
android:text="이메일"/>
<Button
android:id="@+id/btn1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="여기를 클릭" />
</androidx.appcompat.widget.LinearLayoutCompat>
2. dialog.xml 코드
<androidx.appcompat.widget.LinearLayoutCompat
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="사용자 이름"
android:textSize="20dp" />
<EditText
android:id="@+id/etName"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="이메일"
android:textSize="20dp" />
<EditText
android:id="@+id/etEmail"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</androidx.appcompat.widget.LinearLayoutCompat>
3. toast.xml 코드
<androidx.appcompat.widget.LinearLayoutCompat
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:background="@android:color/holo_red_dark"
android:layout_height="match_parent"
android:gravity="center">
<ImageView
android:layout_width="30dp"
android:layout_height="27dp"
android:src="@drawable/ic_star" />
<TextView
android:id="@+id/tvToast"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView"
android:textStyle="bold"
android:textSize="20dp" />
<ImageView
android:layout_width="30dp"
android:layout_height="27dp"
android:src="@drawable/ic_star" />
</androidx.appcompat.widget.LinearLayoutCompat>
4. MainActivity.java 코드
public class MainActivity extends AppCompatActivity {
private TextView tvName, tvEmail, tvToast;
private Button btn1;
private EditText etName, etEmail;
private View dialogView, toastView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setTitle("사용자 정보 입력");
init();
initLr();
}
public void init(){
tvName = findViewById(R.id.tvName);
tvEmail = findViewById(R.id.tvEmail);
btn1 = findViewById(R.id.btn1);
}
public void initLr(){
btn1.setOnClickListener(v -> {
dialogView = View.inflate(MainActivity.this, R.layout.dialog1, null);
AlertDialog.Builder dlg = new AlertDialog.Builder(MainActivity.this);
dlg.setTitle("사용자 정보 입력");
dlg.setIcon(R.drawable.ic_person);
dlg.setView(dialogView);
dlg.setPositiveButton("확인", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
etName = dialogView.findViewById(R.id.etName);
etEmail = dialogView.findViewById(R.id.etEmail);
tvName.setTextColor(Integer.parseInt(etName.getText().toString()));
tvEmail.setTextColor(Integer.parseInt(etEmail.getText().toString()));
}
});
dlg.setNegativeButton("취소", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Toast toast = new Toast(MainActivity.this);
toastView = View.inflate(MainActivity.this, R.layout.toast1, null);
tvToast = toastView.findViewById(R.id.tvToast);
tvToast.setText("취소했습니다.");
toast.setView(toastView);
toast.show();
}
});
dlg.show();
});
}
}