Android 사용자 정보 입력 앱(Toast)

Ruinak·2021년 8월 30일
0

ExampleCode

목록 보기
9/15

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();
        });
    }
}
profile
Nil Desperandum <절대 절망하지 마라>

0개의 댓글

관련 채용 정보