목록프로그래밍 코드/Android Studio (8)
쨍쨍
[ activity_main.xml ] [ EnterActivity ]package com.example.dodami;import android.content.Intent;import android.os.Bundle;import android.widget.Button;import androidx.appcompat.app.AppCompatActivity;public class EnterActivity extends AppCompatActivity { private Button startButton; @Override protected void onCreate(Bundle savedInstanceState) { super..
[ activity_register ] [RegisterActivity] import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.EditText; import android.widget.RadioButton; import android.widget.RadioGroup; import android.widget.Spinner; import com.andr..
[ activitiy_login ] //#1 [ LoginActivitiy ] import android.content.Intent; import android.os.Bundle; import android.widget.TextView; import android.view.View; import androidx.appcompat.app.AppCompatActivity; public class LoginActivity extends AppCompatActivity { // LoginActivity 클래스를 AppCompatActivity 클래스에서 상속 protected void onCreate(Bundle savedInstanceState) { // onCreate 메소드를 재정의 super.onCrea..
클릭 이벤트를 사용하는 방법 ① 익명클래스 생성 ) 쉽게 말하자면 익명 클래스 생성으로 리스너를 구현하여 등록하는 방법이다. 방법 public void InitializeView() { btnred = (Button)findViewById(R.id.btn1); btnblue = (Button)findViewById(R.id.btn2); btngreen = (Button)findViewById(R.id.btn3); textView = (TextView)findViewById(R.id.textView); } InitializeView()코드를 사용해 각 뷰 위젯의 참조를 얻어온 후 public void SetListener() { btnred.setOnClickListener(new View.OnClickL..
뷰 바인딩(View Binding) 쉽게 말해 findViewById를 통해 하나하나 뷰를 찾지 않고, 뷰와 상호작용하는 코드를 쉽게 작성할 수 있다. findViewById findViewById를 사용하면 되는데 굳이 ViewBinding을 사용해야할까? 뷰 바인딩을 사용하지 않았을 때는 findViewById를 사용해 레이아웃에서 생성한 위젯(버튼, 텍스트 등)을 메인코드에서 하나하나 findViewById()을 사용해 선언해줘야한다. 위 사진에서는 findViewById로 선언해줘도 복잡하지 않은데 findViewById를 써도 되지 않을까? 라고 생각할 수 있지만 지금은 위젯이 3개이기 때문에 findViewById로 선언해줘도 코드가 길어지고 복잡해지지 않는 것이다. 만약, 위젯이 100개라면..
레이아웃 이름 설명 제약 레이아웃 제약 조건을 사용해 화면을 구성하는 방법으로 안드로이드 스튜디오에서 자동으로 설정하는 디폴트 레이아웃 리니어 레이아웃 창고 안에 박스를 쌓을 때 아래에서 위로 쌓는 것 처럼 뷰가 차지하는 영역을 박스라고 보고 한 쪽 방향으로 차례대로 뷰를 추가하여 화면을 구성하는 방법으로 뷰가 차지할 수 있는 사각형 영역을 할당 상대 레이아웃 부모 컨테이너나 다른 뷰와의 상대적 위치로 화면을 구성하는 방법이지만 제약 레이아웃을 사용하게 되면서 상대 레이아웃은 권장하지 않음 프레임 레이아웃 가장 상위에 있는 하나의 뷰 또는 뷰그룹만 보여주는 방법으로 여러개의 뷰가 들어가면 중첩하여 쌓게 됨 가장 단순하지만 여러 개의 뷰를 중첩한 후 각 뷰를 전환하여 보여주는 방식으로 자주 사용 테이블 레..
[ 서버 ] main.java import java.io.IOException; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; import java.util.ArrayList; public class Main { public static ArrayList OutputList; public static void main(String[] args) { OutputList = new ArrayList(); System.out.println("서버가 시작되었습니다. 클라이언트의 연결 요청을 기다리고 있습니다..."); try { ServerSocket serversocket = new ServerSocket(80..