글 번호: 136 작성자: gihun 작성시간: 2023-10-31 15:17:12.634 조회수: 192

10/31 수업




package com.example.myapp2;

import android.annotation.SuppressLint;
import android.content.DialogInterface;
import android.graphics.Color;
import android.os.SystemClock;
import android.view.View;
import android.widget.*;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

    Button button1;

    @Override    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        setTitle("10월 31일자 수업 복습");

        button1 = (Button) findViewById(R.id.button1);
        button1.setOnClickListener(new View.OnClickListener(){
            @Override            public void onClick(View v) {
                AlertDialog.Builder dlg = new AlertDialog.Builder(MainActivity.this);
                dlg.setTitle("제목입니다.");
                dlg.setMessage("내용입니다.");
                dlg.setIcon(R.mipmap.ic_launcher);
                // 소속이 Dialog이기 때문에 서로 다른 속성을 가지고 있음.                dlg.setPositiveButton("확인", new DialogInterface.OnClickListener() {
                    @Override                    public void onClick(DialogInterface dialog, int which) {
                        Toast.makeText(getApplicationContext(), "확인을 눌렀네요.", Toast.LENGTH_SHORT).show();
                    }
                });
                dlg.show();
            }
        });
    }
}
// 패키지 선언
package com.example.myapp2;

// 필요한 패키지들을 임포트
import android.content.DialogInterface;
import android.view.View;
import android.widget.Button;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;

// MainActivity 클래스 선언. AppCompatActivity를 상속받아 Android 앱의 액티비티로 동작합니다.
public class MainActivity extends AppCompatActivity {

    // 버튼 객체를 위한 멤버 변수 선언
    Button button1;

    // 액티비티가 생성될 때 호출되는 메서드
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // activity_main.xml 레이아웃을 액티비티에 적용
        setContentView(R.layout.activity_main);

        // 액티비티의 타이틀 설정
        setTitle("10월 31일자 수업 복습");

        // XML 레이아웃에서 id가 button1인 버튼 객체를 찾아서 button1 변수에 저장
        button1 = (Button) findViewById(R.id.button1);

        // button1에 클릭 리스너 설정. 버튼이 클릭되었을 때 실행될 코드를 정의
        button1.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v) {

                // 버전 이름을 담은 문자열 배열 선언
                final String[] versionArray = new String[] {"누가", "오레오", "파이"};
                final boolean[] checkArray = new boolean[] {true, false, false};

                // AlertDialog를 생성하기 위한 Builder 객체 생성
                AlertDialog.Builder dlg = new AlertDialog.Builder(MainActivity.this);
                dlg.setTitle("좋아하는 버전은?");
                dlg.setIcon(R.mipmap.ic_launcher);
                // AlertDialog에 단일 선택 항목 추가. 초기 선택된 항목은 '누가'
                dlg.setMultiChoiceItems(versionArray, checkArray,
                        new DialogInterface.OnMultiChoiceClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which, boolean isChecked) {
                                // 항목을 클릭하면 버튼의 텍스트를 선택된 항목으로 변경
                                button1.setText(versionArray[which]);
                            }
                        });

                // AlertDialog에 '닫기' 버튼 추가
                dlg.setPositiveButton("닫기", null);

                // AlertDialog를 화면에 표시
                dlg.show();
            }
        });
    }
}


다른 예제

// 패키지 선언package com.example.myapp2;

// 필요한 패키지들을 임포트import android.content.DialogInterface;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;

// MainActivity 클래스 선언. AppCompatActivity를 상속받아 Android 앱의 액티비티로 동작합니다.public class MainActivity extends AppCompatActivity {


    TextView tvName, tvEmail;
    // 버튼 객체를 위한 멤버 변수 선언    Button button1;
    EditText dlgEdtName, dlgEdtEmail;
    TextView toastText;
    View dialogView, toastView;

    // 액티비티가 생성될 때 호출되는 메서드    @Override    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // activity_main.xml 레이아웃을 액티비티에 적용        setContentView(R.layout.activity_main);

        // 액티비티의 타이틀 설정        setTitle("10월 31일자 수업 복습");

        tvEmail = (TextView) findViewById(R.id.tvEmail);
        tvName = (TextView) findViewById(R.id.tvName);
        button1 = (Button) findViewById(R.id.button1);

        button1.setOnClickListener(new View.OnClickListener() {
            @Override            public void onClick(View v) {
                dialogView = (View) View.inflate(MainActivity.this, R.layout.dialog1, null);

                dlgEdtName = (EditText) dialogView.findViewById(R.id.dlgEdt1);
                dlgEdtEmail = (EditText) dialogView.findViewById(R.id.dlgEdt2);
                dlgEdtName.setText(tvName.getText().toString());
                dlgEdtEmail.setText(tvEmail.getText().toString());

                AlertDialog.Builder dlg = new AlertDialog.Builder(MainActivity.this);
                dlg.setTitle("사용자 정보 입력");
                dlg.setIcon(R.drawable.ic_launcher_foreground);
                dlg.setView(dialogView);
                dlg.setPositiveButton("확인",
                        new DialogInterface.OnClickListener() {
                            @Override                            public void onClick(DialogInterface dialog, int which) {
                                dlgEdtName = (EditText) dialogView.findViewById(R.id.dlgEdt1);
                                dlgEdtEmail = (EditText) dialogView.findViewById(R.id.dlgEdt2);

                                tvName.setText(dlgEdtName.getText().toString());
                                tvEmail.setText(dlgEdtEmail.getText().toString());
                            }
                        }
                );
                dlg.setNegativeButton("취소", new DialogInterface.OnClickListener() {
                    @Override                    public void onClick(DialogInterface dialog, int which) {
                        Toast toast = new Toast(MainActivity.this);
                        toastView = (View) View.inflate(MainActivity.this, R.layout.toast1, null);
                        toastText = (TextView) toastView.findViewById(R.id.toastText1);
                        toastText.setText("취소했습니다.");
                        toast.setView(toastView);
                        toast.show();
                    }
                });
                dlg.show();
            }
        });


    }
}

dialog1.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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="사용자 이름"/>

    <EditText
            android:id="@+id/dlgEdt1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>
    <TextView
            android:text="이메일"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>
    <EditText android:id="@+id/dlgEdt2"
              android:layout_width="match_parent"
              android:layout_height="wrap_content"/>

</LinearLayout>

toast1.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="horizontal"
              android:background="#ff0000"
              android:layout_width="match_parent"
              android:layout_height="wrap_content">

    <!-- 첫 번째 이미지뷰 크기 및 스케일 타입 조정 -->
    <ImageView android:layout_width="20dp"
               android:layout_height="20dp"
               android:src="@drawable/btn_star_big_on"/>

    <TextView android:id="@+id/toastText1"
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:textSize="20dp"
              android:text="TextView"/>

    <!-- 두 번째 이미지뷰 크기 및 스케일 타입 조정 -->
    <ImageView android:layout_width="20dp"
               android:layout_height="20dp"
               android:src="@drawable/btn_star_big_on"/>

</LinearLayout>

activity_main.xml

<LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/baseLayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center_horizontal"
        android:orientation="vertical">

    <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center_horizontal" android:orientation="vertical">

        <EditText
                android:id="@+id/tvName"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="사용자 이름"
                android:gravity="center"/> <!-- 이 부분이 수정됨 -->

        <EditText
                android:id="@+id/tvEmail"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="사용자 이메일"
                android:gravity="center"/> <!-- 이 부분이 수정됨 -->

        <Button
                android:id="@+id/button1"
                android:text="여기를 클릭"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"/>

    </LinearLayout>
</LinearLayout>

---


실습



<LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/baseLayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center_horizontal"
        android:orientation="vertical">

    <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center_horizontal"
            android:orientation="vertical">
        <Button
                android:id="@+id/button1"
                android:text="여기를 클릭"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"/>

        <ImageView
                android:id="@+id/animalImage"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="80dp"
                android:scaleType="fitXY"
                android:adjustViewBounds="true"/>

    </LinearLayout>
</LinearLayout>



// 패키지 선언
package com.example.myapp2;

// 필요한 패키지들을 임포트
import android.content.DialogInterface;
import android.view.View;
import android.widget.*;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;

// MainActivity 클래스 선언. AppCompatActivity를 상속받아 Android 앱의 액티비티로 동작합니다.
public class MainActivity extends AppCompatActivity {
    ImageView animalImage;



    // 액티비티가 생성될 때 호출되는 메서드
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // activity_main.xml 레이아웃을 액티비티에 적용
        setContentView(R.layout.activity_main);

        // 액티비티의 타이틀 설정
        setTitle("10월 31일자 수업 복습");


        animalImage = findViewById(R.id.animalImage);
        final Button button1 = (Button) findViewById(R.id.button1);


        // 버튼 클릭 이벤트 처리1
        button1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                final String[] versionArray = new String[] {"강아지", "고양이", "말", "토끼"};
                AlertDialog.Builder dlg = new AlertDialog.Builder(MainActivity.this);
                dlg.setTitle("좋아하는 동물은?");
                dlg.setItems(versionArray,
                        new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialogInterface, int which) {
                                   switch (which) {
                                       case 0:
                                           animalImage.setImageResource(R.drawable.dog);
                                           break;
                                       case 1:
                                           animalImage.setImageResource(R.drawable.cat);
                                           break;
                                       case 2:
                                           animalImage.setImageResource(R.drawable.horse);
                                           break;
                                       case 3:
                                           animalImage.setImageResource(R.drawable.rabbit);
                                           break;
                                   }
                            }
                        });
                dlg.setPositiveButton("닫기", null);
                dlg.show();
            }
        });
    }
}



댓글 리스트

Created by 송바래

✉ gihun3645@naver.com

🚩경기도, 성남시