<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>may-verde.log</title>
        <link>https://velog.io/</link>
        <description>알아가는 맛</description>
        <lastBuildDate>Fri, 11 Jun 2021 15:38:25 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>may-verde.log</title>
            <url>https://images.velog.io/images/may-verde/profile/cf49433a-4697-48b1-82f7-e1d62d4bb78c/plogging.jpg</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. may-verde.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/may-verde" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[[JavaScript] todoList_1, 배열퀴즈]]></title>
            <link>https://velog.io/@may-verde/JavaScript-todoList1</link>
            <guid>https://velog.io/@may-verde/JavaScript-todoList1</guid>
            <pubDate>Fri, 11 Jun 2021 15:38:25 GMT</pubDate>
            <description><![CDATA[<h4 id="🎈-requirements">🎈 requirements</h4>
<p><img src="https://images.velog.io/images/may-verde/post/bcff3748-6999-49b1-bff2-07907f75b819/image.png" alt=""></p>
<ol>
<li>크롬에 about:blank 라고 입력
마우스 오른쪽 - 검사 - console
<img src="https://images.velog.io/images/may-verde/post/882ee1d4-5c41-4171-a6c4-e0ef97c2d29b/image.png" alt=""></li>
<li>다시 새로고침 하고 콘솔에 똑같이 todos라고 치니까 안나옴
<img src="https://images.velog.io/images/may-verde/post/5f937c33-1a8e-4a98-af08-4720d2ec7f0c/image.png" alt=""></li>
<li>vscode에서 todoList.html에 script안에 똑같이 쳐주고 이걸 크롬에서 열면 잘 나옴 &gt;&gt; 데이터가 저장됐단 뜻이구나.
<img src="https://images.velog.io/images/may-verde/post/079c88be-7f5b-4c76-9cc2-d1936d86ad1c/image.png" alt=""></li>
</ol>
<h4 id="x-1-have-a-span-style--colorff69b4place-to-storespan-todos-완료">&gt;&gt; [X] 1. have a <span style = "color:#FF69B4">place to store</span> todos (완료!)</h4>
<hr>
<ol>
<li>console.log(todos); 작성해주기. todos 표시
<img src="https://images.velog.io/images/may-verde/post/d624db5e-8507-4aa5-aa82-53f0bd3d1e1b/image.png" alt=""></li>
<li>이후 html 파일을 새로고침하기만 해도 console창에 todos가 자동으로 표시됨.<img src="https://images.velog.io/images/may-verde/post/928b522e-0ca8-4354-bfaf-ace71c907f4b/image.png" alt=""></li>
</ol>
<h4 id="x-2-have-a-way-to-span-style--colorff69b4displayspan-todos-완료">&gt;&gt; [X] 2. have a way to <span style = "color:#FF69B4">display</span> todos (완료!)</h4>
<hr>
<ol>
<li><p><strong>.push 이용하여</strong> todos.push(&#39;새로운 아이템&#39;); 입력해주기<img src="https://images.velog.io/images/may-verde/post/2474aa17-b4f2-4907-9f1d-d9afe71013a3/image.png" alt=""></p>
</li>
<li><p>콘솔 창에서 확인 <img src="https://images.velog.io/images/may-verde/post/8747e85a-2690-406d-9fa8-8a9156465ebe/image.png" alt=""></p>
</li>
</ol>
<h4 id="x-3-have-a-way-to-span-style--colorff69b4addspan-todo-완료">&gt;&gt; [X] 3. have a way to <span style = "color:#FF69B4">add</span> todo (완료!)</h4>
<hr>
<ol>
<li>todos 배열에 들어있는 0번째 인덱스의 아이템1을 가져와서 변경하고 확인해보기<img src="https://images.velog.io/images/may-verde/post/d4619ecb-a6c7-48ba-bfd7-188bdb1c180e/image.png" alt=""></li>
<li>VScode 에서 그대로 써주기<img src="https://images.velog.io/images/may-verde/post/37959343-97c2-4033-a4da-07671361d033/image.png" alt=""></li>
</ol>
<h4 id="x-4-have-a-way-to-span-style--colorff69b4editspan-todo-완료">&gt;&gt; [X] 4. have a way to <span style = "color:#FF69B4">edit</span> todo (완료!)</h4>
<hr>
<ol>
<li><p><strong>.splice</strong> 이용하여 todo 삭제하기. 어디를 삭제할 것인지 인덱싱 사용(0, 1)<img src="https://images.velog.io/images/may-verde/post/9be7728b-43c4-404a-9b57-0bf90660d91a/image.png" alt=""></p>
</li>
<li><p>VScode에 똑같이 작성해주기<img src="https://images.velog.io/images/may-verde/post/31bfbddf-6e3f-42c9-8fe9-1480b0799831/image.png" alt=""></p>
</li>
</ol>
<h4 id="x-5-have-a-way-to-span-style--colorff69b4removespan-a-todo-완료">&gt;&gt; [X] 5. have a way to <span style = "color:#FF69B4">remove</span> a todo (완료!)</h4>
<p><img src="https://images.velog.io/images/may-verde/post/4dc08d91-64a5-4094-b207-97dad05a6ac0/image.png" alt=""></p>
<hr>
<h3 id="🧵-배열-퀴즈">🧵 배열 퀴즈</h3>
<p><a href="https://watchandcode.com/courses/350615/lectures/22887997">https://watchandcode.com/courses/350615/lectures/22887997</a> </p>
<ol>
<li><strong>Quiz!</strong><pre><code class="language-javascript">var array1 = [&#39;yo&#39;, &#39;hi&#39;];
array1[0] = array1[1];
</code></pre>
</li>
</ol>
<p>var array2 = [&#39;bye&#39;, &#39;later&#39;];
array2.splice(1,1);</p>
<p>var array3 = [];
array3[0] = array1[0];
array3[1] = array2[0];</p>
<hr>
<p>Q. After this code runs, <array3> will be equal to:</p>
<ol>
<li><p>[&#39;yo&#39;, &#39;hi&#39;]</p>
</li>
<li><p>[&#39;yo&#39;, &#39;yo&#39;]</p>
</li>
<li><p>[&#39;hi&#39;, &#39;hi&#39;]</p>
</li>
<li><p>[&#39;bye&#39;, &#39;bye&#39;]</p>
</li>
<li><p>[&#39;hi&#39;, &#39;bye&#39;]</p>
</li>
<li><p>[&#39;bye&#39;, &#39;hi&#39;]</p>
</li>
<li><p>None of the above</p>
<pre><code></code></pre></li>
<li><p>Answer &gt;&gt; 5. [&#39;hi&#39;, &#39;bye&#39;]</p>
</li>
<li><p>해설
<img src="https://images.velog.io/images/may-verde/post/6ca0b0d2-7a38-4a18-8aba-e18e9143090d/image.png" alt=""><img src="https://images.velog.io/images/may-verde/post/4cca4071-e760-4a8f-86e8-941fe9fa9dfc/image.png" alt=""></p>
</li>
</ol>
]]></description>
        </item>
        <item>
            <title><![CDATA[[안드로이드스튜디오] 자동완성기능]]></title>
            <link>https://velog.io/@may-verde/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C%EC%8A%A4%ED%8A%9C%EB%94%94%EC%98%A4-%EC%9E%90%EB%8F%99%EC%99%84%EC%84%B1%EA%B8%B0%EB%8A%A5-AutoCompleteMultiAutoCompleteTextView</link>
            <guid>https://velog.io/@may-verde/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C%EC%8A%A4%ED%8A%9C%EB%94%94%EC%98%A4-%EC%9E%90%EB%8F%99%EC%99%84%EC%84%B1%EA%B8%B0%EB%8A%A5-AutoCompleteMultiAutoCompleteTextView</guid>
            <pubDate>Wed, 09 Jun 2021 16:25:21 GMT</pubDate>
            <description><![CDATA[<h3 id="🔹-autocompletetextview-multiautocompletetextview---자동완성을-지원하는-텍스트뷰의-한-종류">🔹 AutoCompleteTextView, MultiAutoCompleteTextView - 자동완성을 지원하는, 텍스트뷰의 한 종류.</h3>
<ul>
<li>사용자가 단어를 입력하는 와중에 미리 설정해놓은 완성 단어를 보여준다.</li>
<li>Multi~를 활용하면 <strong>쉼표</strong>로 구분해서 <strong>여러 단어를 자동완성</strong>하는 것이 가능 &lt;&lt;<strong>CommaTokenizer</strong> 사용</li>
<li>자동완성에 사용하는 단어는 <span style = "color:red"> String[ ]에 저장 </span>하고, <span style = "color:red">ArrayAdapter</span>를 이용해 등록함.</li>
<li>completionThreshold를 이용하여 자동완성에 필요한 글자 수를 조절함</li>
</ul>
<h3 id="💫-완성화면">💫 완성화면</h3>
<p><img src="https://images.velog.io/images/may-verde/post/6c18d6a1-89ba-48cb-a7e5-d51dae1ca29b/image.png" alt=""></p>
<h3 id="💫-xml코드">💫 xml코드</h3>
<pre><code class="language-xml">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;LinearLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
    xmlns:app=&quot;http://schemas.android.com/apk/res-auto&quot;
    xmlns:tools=&quot;http://schemas.android.com/tools&quot;
    android:layout_width=&quot;match_parent&quot;
    android:layout_height=&quot;match_parent&quot;
    android:orientation=&quot;vertical&quot;
    tools:context=&quot;.MainActivity&quot;&gt;

    &lt;AutoCompleteTextView
        android:id=&quot;@+id/et1&quot;
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:completionThreshold=&quot;2&quot;
        &gt;&lt;/AutoCompleteTextView&gt;

    &lt;MultiAutoCompleteTextView
        android:id=&quot;@+id/et2&quot;
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:completionThreshold=&quot;3&quot;
        &gt;&lt;/MultiAutoCompleteTextView&gt;

&lt;/LinearLayout&gt;</code></pre>
<h3 id="💫-java코드">💫 java코드</h3>
<pre><code class="language-java">package com.example.w12_completetext;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.MultiAutoCompleteTextView;
import android.widget.MultiAutoCompleteTextView.CommaTokenizer;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        String[] list = {&quot;CcCc1&quot;, &quot;CcCc2&quot;, &quot;CcCc3&quot;, &quot;CcCc4&quot;, &quot;CcCc5&quot;,
        &quot;Ccdc1&quot;, &quot;CcbC1&quot;, &quot;Ccdc2&quot;, &quot;Ccdc3&quot;, &quot;Ccdc4&quot;};

        ArrayAdapter AAd = new ArrayAdapter(MainActivity.this,
                android.R.layout.simple_list_item_1, list);

        AutoCompleteTextView at = (AutoCompleteTextView) findViewById(R.id.et1);
        at.setAdapter(AAd);

        MultiAutoCompleteTextView mc = (MultiAutoCompleteTextView) findViewById(R.id.et2);

        //쉼표를 기준으로 현재 입력하고 있는 애들을 나눠주는 역할 &quot;Token&quot;
        CommaTokenizer token = new CommaTokenizer();
        mc.setTokenizer(token);

        mc.setAdapter(AAd);
    }
}</code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[[시간예약 앱 만들기] Chronometer, 타임피커, 캘린더뷰]]></title>
            <link>https://velog.io/@may-verde/Chronometer-%ED%83%80%EC%9E%84%ED%94%BC%EC%BB%A4-%EC%BA%98%EB%A6%B0%EB%8D%94%EB%B7%B0</link>
            <guid>https://velog.io/@may-verde/Chronometer-%ED%83%80%EC%9E%84%ED%94%BC%EC%BB%A4-%EC%BA%98%EB%A6%B0%EB%8D%94%EB%B7%B0</guid>
            <pubDate>Wed, 09 Jun 2021 16:11:42 GMT</pubDate>
            <description><![CDATA[<h1 id="span-stylecolorc71585🧵-크로노미터span"><span style="color:#C71585">🧵 크로노미터</span></h1>
<p><img src="https://images.velog.io/images/may-verde/post/fb344569-c29b-4173-adb8-8f27343da391/image.png" alt=""></p>
<h2 id="💫-xml-코드">💫 xml 코드</h2>
<pre><code class="language-xml">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;LinearLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
    xmlns:app=&quot;http://schemas.android.com/apk/res-auto&quot;
    xmlns:tools=&quot;http://schemas.android.com/tools&quot;
    android:layout_width=&quot;match_parent&quot;
    android:layout_height=&quot;match_parent&quot;
    android:orientation=&quot;vertical&quot;
    tools:context=&quot;.MainActivity&quot;&gt;

    &lt;Chronometer
        android:id=&quot;@+id/chrono&quot;
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:textSize=&quot;30dp&quot;
        android:gravity=&quot;center_horizontal&quot;
        android:textColor=&quot;#6495ED&quot;&gt;&lt;/Chronometer&gt;

    &lt;Button
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:text=&quot;START&quot;
        android:id=&quot;@+id/bt_start&quot;&gt;&lt;/Button&gt;

    &lt;Button
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:text=&quot;STOP&quot;
        android:id=&quot;@+id/bt_stop&quot;&gt;&lt;/Button&gt;

    &lt;Button
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:text=&quot;RESET&quot;
        android:id=&quot;@+id/bt_reset&quot;&gt;&lt;/Button&gt;

&lt;/LinearLayout&gt;</code></pre>
<h2 id="💫-java-코드">💫 java 코드</h2>
<h4 id="📌systemclockelapsedrealtime을-꼭-추가해준다-그래야지-디바이스가-부팅된-시점부터-시간이-표시되는-것을-막을-수-있다">📌SystemClock.elapsedRealtime을 꼭 추가해준다!! 그래야지 디바이스가 부팅된 시점부터 시간이 표시되는 것을 막을 수 있다.</h4>
<pre><code class="language-java">package com.example.w12_time;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.os.SystemClock;
import android.view.View;
import android.widget.Button;
import android.widget.Chronometer;

public class MainActivity extends AppCompatActivity {

    Chronometer chrono;
    Button bt_start, bt_stop, bt_reset;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        chrono = (Chronometer) findViewById(R.id.chrono);
        bt_start = (Button) findViewById(R.id.bt_start);
        bt_stop = (Button) findViewById(R.id.bt_stop);
        bt_reset = (Button) findViewById(R.id.bt_reset);

        bt_stop.setEnabled(false);
        bt_reset.setEnabled(false);

        bt_start.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                chrono.setBase(SystemClock.elapsedRealtime());
                chrono.start();

                bt_start.setEnabled(false);
                bt_stop.setEnabled(true);
            }
        });

        bt_stop.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                chrono.stop();

                bt_reset.setEnabled(true);
                bt_stop.setEnabled(false);
            }
        });

        bt_reset.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                chrono.setBase(SystemClock.elapsedRealtime());

                bt_reset.setEnabled(false);
                bt_start.setEnabled(true);
            }
        });
    }


}</code></pre>
<h1 id="span-stylecolorc71585🧵-타임피커와-캘린더뷰span"><span style="color:#C71585">🧵 타임피커와 캘린더뷰</span></h1>
<h3 id="📏기억해야-할-키워드">📏기억해야 할 키워드</h3>
<ul>
<li>(캘린더뷰) 년/월/일 중 &#39;월&#39;은 Month+1</li>
<li>SetOnDateChangeListner (날짜 클릭하는 것 기다리고 있다가 클릭하면 감지), </li>
<li>(위) new CalendarView.OnDateChangeListener()와 세트</li>
<li>tvHour.setText(Integer.toString(tPicker.getHour())); &lt;--int형을 문자열로 변환하여 표시하기</li>
</ul>
<h2 id="💫-완성화면">💫 완성화면</h2>
<ul>
<li>예약 시작 버튼을 누르면 Chronometer가 작동되면서 시간이 흘러감.</li>
<li>처음에는 아래에 아무것도 보이지 않다가, &#39;날짜설정&#39; 라디오 버튼을 누르면 캘린더뷰가 보이고 / &#39;시간설정&#39; 라디오 버튼을 누르면 타임피커(<strong>스피너 모드</strong>)가 나옴.</li>
<li>날짜와 시간 선택 후 예약완료 버튼을 누르면 Chronometer는 멈추고 사용자가 선택한 날짜/시간을 받아와 아래 표시함.</li>
</ul>
<p><img src="https://images.velog.io/images/may-verde/post/ceabd659-29ca-4b56-826b-9373991b8baf/image.png" alt=""></p>
<h2 id="💫-xml-코드-1">💫 xml 코드</h2>
<pre><code class="language-xml">&lt;LinearLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
    xmlns:tools=&quot;http://schemas.android.com/tools&quot;
    android:layout_width=&quot;match_parent&quot;
    android:layout_height=&quot;match_parent&quot;
    android:baselineAligned=&quot;false&quot;
    android:orientation=&quot;vertical&quot; &gt;


    &lt;Chronometer
        android:id=&quot;@+id/chronometer1&quot;
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:format=&quot; 예약에 걸린 시간  %s &quot;
        android:gravity=&quot;center&quot;
        android:textSize=&quot;20dp&quot; /&gt;

    &lt;Button
        android:id=&quot;@+id/btnStart&quot;
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:text=&quot;예약 시작&quot; /&gt;


    &lt;RadioGroup
        android:layout_width=&quot;wrap_content&quot;
        android:layout_height=&quot;wrap_content&quot; &gt;

        &lt;RadioButton
            android:id=&quot;@+id/rdoCal&quot;
            android:layout_width=&quot;wrap_content&quot;
            android:layout_height=&quot;wrap_content&quot;
            android:text=&quot;날짜 설정 (캘린더뷰)&quot; /&gt;

        &lt;RadioButton
            android:id=&quot;@+id/rdoTime&quot;
            android:layout_width=&quot;wrap_content&quot;
            android:layout_height=&quot;wrap_content&quot;
            android:text=&quot;시간 설정&quot; /&gt;
    &lt;/RadioGroup&gt;

    &lt;LinearLayout
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;0dp&quot;
        android:layout_weight=&quot;1&quot; &gt;

        &lt;FrameLayout
            android:layout_width=&quot;match_parent&quot;
            android:layout_height=&quot;match_parent&quot;
            android:gravity=&quot;center&quot; &gt;

            &lt;CalendarView
                android:id=&quot;@+id/calendarView1&quot;
                android:layout_width=&quot;match_parent&quot;
                android:layout_height=&quot;match_parent&quot;
                android:showWeekNumber=&quot;false&quot; /&gt;

            &lt;TimePicker
                android:timePickerMode=&quot;spinner&quot;
                android:id=&quot;@+id/timePicker1&quot;
                android:layout_width=&quot;match_parent&quot;
                android:layout_height=&quot;match_parent&quot; /&gt;
        &lt;/FrameLayout&gt;
    &lt;/LinearLayout&gt;

    &lt;LinearLayout
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:background=&quot;#CCCCCC&quot; &gt;

        &lt;Button
            android:id=&quot;@+id/btnEnd&quot;
            android:layout_width=&quot;wrap_content&quot;
            android:layout_height=&quot;wrap_content&quot;
            android:text=&quot;예약완료&quot; /&gt;

        &lt;TextView
            android:id=&quot;@+id/tvYear&quot;
            android:layout_width=&quot;wrap_content&quot;
            android:layout_height=&quot;wrap_content&quot;
            android:text=&quot;0000&quot; /&gt;

        &lt;TextView
            android:layout_width=&quot;wrap_content&quot;
            android:layout_height=&quot;wrap_content&quot;
            android:text=&quot;년&quot; /&gt;

        &lt;TextView
            android:id=&quot;@+id/tvMonth&quot;
            android:layout_width=&quot;wrap_content&quot;
            android:layout_height=&quot;wrap_content&quot;
            android:text=&quot;00&quot; /&gt;

        &lt;TextView
            android:layout_width=&quot;wrap_content&quot;
            android:layout_height=&quot;wrap_content&quot;
            android:text=&quot;월&quot; /&gt;

        &lt;TextView
            android:id=&quot;@+id/tvDay&quot;
            android:layout_width=&quot;wrap_content&quot;
            android:layout_height=&quot;wrap_content&quot;
            android:text=&quot;00&quot; /&gt;

        &lt;TextView
            android:layout_width=&quot;wrap_content&quot;
            android:layout_height=&quot;wrap_content&quot;
            android:text=&quot;일&quot; /&gt;

        &lt;TextView
            android:id=&quot;@+id/tvHour&quot;
            android:layout_width=&quot;wrap_content&quot;
            android:layout_height=&quot;wrap_content&quot;
            android:text=&quot;00&quot; /&gt;

        &lt;TextView
            android:layout_width=&quot;wrap_content&quot;
            android:layout_height=&quot;wrap_content&quot;
            android:text=&quot;시&quot; /&gt;

        &lt;TextView
            android:id=&quot;@+id/tvMinute&quot;
            android:layout_width=&quot;wrap_content&quot;
            android:layout_height=&quot;wrap_content&quot;
            android:text=&quot;00&quot; /&gt;

        &lt;TextView
            android:layout_width=&quot;wrap_content&quot;
            android:layout_height=&quot;wrap_content&quot;
            android:text=&quot;분 예약됨&quot; /&gt;
    &lt;/LinearLayout&gt;

&lt;/LinearLayout&gt;</code></pre>
<h2 id="💫-java-코드-1">💫 java 코드</h2>
<pre><code class="language-java">package com.example.w12_time;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.os.SystemClock;
import android.view.View;
import android.widget.Button;
import android.widget.CalendarView;
import android.widget.Chronometer;
import android.widget.RadioButton;
import android.widget.TextView;
import android.widget.TimePicker;

import java.util.Calendar;

public class MainActivity extends AppCompatActivity {

    Chronometer chrono;
    Button btnStart, btnEnd;
    RadioButton rdoCal, rdoTime;
    CalendarView calView;
    TimePicker tPicker;
    TextView tvYear, tvMonth, tvDay, tvHour, tvMinute;
    int selectYear, selectMonth, selectDay;


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        setTitle(&quot;시간 예약&quot;);

        // 버튼
        btnStart = (Button) findViewById(R.id.btnStart);
        btnEnd = (Button) findViewById(R.id.btnEnd);

        // 크로노미터
        chrono = (Chronometer) findViewById(R.id.chronometer1);

        // 라디오버튼 2개
        rdoCal = (RadioButton) findViewById(R.id.rdoCal);
        rdoTime = (RadioButton) findViewById(R.id.rdoTime);

        // FrameLayout의 2개 위젯
        tPicker = (TimePicker) findViewById(R.id.timePicker1);
        calView = (CalendarView) findViewById(R.id.calendarView1);

        // 텍스트뷰 중에서 연,월,일,시,분 숫자
        tvYear = (TextView) findViewById(R.id.tvYear);
        tvMonth = (TextView) findViewById(R.id.tvMonth);
        tvDay = (TextView) findViewById(R.id.tvDay);
        tvHour = (TextView) findViewById(R.id.tvHour);
        tvMinute = (TextView) findViewById(R.id.tvMinute);

        // 처음에는 2개를 안보이게 설정
        tPicker.setVisibility(View.INVISIBLE);
        calView.setVisibility(View.INVISIBLE);

        rdoCal.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                calView.setVisibility(View.VISIBLE);
                tPicker.setVisibility(View.INVISIBLE);
            }
        });

        rdoTime.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                calView.setVisibility(View.INVISIBLE);
                tPicker.setVisibility(View.VISIBLE);
            }
        });

        // 타이머 설정
        btnStart.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                chrono.setBase(SystemClock.elapsedRealtime());
                chrono.start();
                chrono.setTextColor(Color.MAGENTA);
            }
        });

        // 버튼을 클릭하면 날짜,시간을 가져온다.
        btnEnd.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                chrono.stop();


                /*맨 아래 텍스트뷰에 타임피커로부터 가져온 시간과 분 표시.
                 tPicker.getHour 자동완성 뜨는 것 보면 이것이 정수형(int)임을 알 수 있으므로
                정수형을 문자열로 바꿔주는 Integer.toString을 사용하기*/
                tvHour.setText(Integer.toString(tPicker.getHour()));
                tvMinute.setText(Integer.toString(tPicker.getMinute()));

                //맨 아래 텍스트뷰에 캘린더뷰에서 가져온 년/월/일 표시.
                tvYear.setText(Integer.toString(selectYear));
                tvMonth.setText(Integer.toString(selectMonth));
                tvDay.setText(Integer.toString(selectDay));

            }
        });


        calView.setOnDateChangeListener(new CalendarView.OnDateChangeListener() {
            @Override
            public void onSelectedDayChange(@NonNull CalendarView view, int year, int month, int dayOfMonth) {

                selectYear = year;
                //달은 month+1이라고 해줘야됨!!!주의(안드로이드 기본 설정)
                selectMonth = month +1;
                selectDay = dayOfMonth;
            }
        });

    }

}
</code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[📐 gravity와 layout_gravity]]></title>
            <link>https://velog.io/@may-verde/gravity%EC%99%80-layoutgravity</link>
            <guid>https://velog.io/@may-verde/gravity%EC%99%80-layoutgravity</guid>
            <pubDate>Wed, 09 Jun 2021 11:09:24 GMT</pubDate>
            <description><![CDATA[<h3 id="💨-layout-안에">💨 &lt;Layout 안에</h3>
<h4 id="💨💨widget-있음">💨💨&lt;Widget 있음.</h4>
<p>--gravity(자식들을 어디에 위치시킬까)
--layout_gravity(자신의 위치를 부모의 어디에 위치시킬까?)</p>
<h3 id="📐-gravity">📐 gravity</h3>
<p>View의 gravity 속성을 조절 --&gt; <span style = "color:red"> View 내부의 content의 위치를 설정하게 됨</span></p>
<h3 id="📏-layout_gravity">📏 layout_gravity</h3>
<p>layout_gravity를 설정 --&gt; View를 감싸고 있는 LinearLayout과 같은 <span style="color:blue">상위 View를 기준으로 했을 때 View의 위치를 설정하게 됨.</span></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[안드로이드 스튜디오] 갤러리 프로젝트(2) - 완성]]></title>
            <link>https://velog.io/@may-verde/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%EC%8A%A4%ED%8A%9C%EB%94%94%EC%98%A4-%EA%B0%A4%EB%9F%AC%EB%A6%AC-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B82-%EC%99%84%EC%84%B1</link>
            <guid>https://velog.io/@may-verde/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%EC%8A%A4%ED%8A%9C%EB%94%94%EC%98%A4-%EA%B0%A4%EB%9F%AC%EB%A6%AC-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B82-%EC%99%84%EC%84%B1</guid>
            <pubDate>Sun, 06 Jun 2021 06:58:40 GMT</pubDate>
            <description><![CDATA[<h2 id="🍕-진행순서">🍕 진행순서</h2>
<ol>
<li>&#39;투표 종료&#39; 눌렀을 때 두 번째 Activity로 넘어가게 하기</li>
<li>그림 하나하나 눌렀을 때 별점 올라가도록 코드 작성</li>
<li>두 번째 Activity로 넘어갔을 때 2번에서 점수를 기록했던 내용을 전달받을 수 있도록 Intent 작성해주고 두 번째  Activitiy에서 꺼내오기</li>
</ol>
<p>--&gt; 현재 1. &#39;투표 종료&#39; 눌렀을 때 두 번째 Acitivity로 넘어가게 하기까지 완료한 상태</p>
<h3 id="💌-2-그림-하나하나-눌렀을-때-별점-올라가도록-코드-작성">💌 2. 그림 하나하나 눌렀을 때 별점 올라가도록 코드 작성</h3>
<h4 id="🔹-mainactivityjava">🔹 MainActivity.java</h4>
<p><img src="https://images.velog.io/images/may-verde/post/a03c62ed-b9d2-43f5-bdaa-0e5577f48a81/KakaoTalk_20210610_024858889.jpg" alt=""><img src="https://images.velog.io/images/may-verde/post/457115eb-a68b-460e-97c4-5e8c538bf739/KakaoTalk_20210610_024858889_01.jpg" alt=""><img src="https://images.velog.io/images/may-verde/post/38b4b5f8-1e0b-48e9-9d77-10d916186cbd/KakaoTalk_20210610_024858889_02.jpg" alt=""></p>
<pre><code class="language-java">package com.cookandroid.w11_gallery;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button bt = (Button) findViewById(R.id.btnResult);
        bt.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(MainActivity.this, ResultActivity.class);
                startActivity(intent);
            }
            //정수를 저장할 수 있는 박스 9개를 만들어놓고 0으로 초기화
            int rating[] = new int[9];
            //원래 하던 것 : ImageView iv; --&gt; iv = (ImageView) findViewById (R.id.iv)
            ImageView image[] = new ImageView[9];

            Integer image_id[] = {R.id.iv1, R.id.iv2, R.id.iv3,
                    R.id.iv4, R.id.iv5, R.id.iv6,
                    R.id.iv7, R.id.iv8, R.id.iv9};

            for (int i=0; i&lt;9; i++){

                rating[i] = 0;
                //캐스팅 하던 대로. ImageView img(변수) = (ImageView) findViewByID (R.id.--)
                image[i] = (ImageView) findViewById(image_id[i]);

                //final - 한 번 할당한 뒤 다시는 값을 바꾸지 않아야 할 경우에.(실수로라도 바꾸지 않게. 안전장치.)
                final int j = i;
                image[i].setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                        rating[j]++;
                    }
                });
            }

        });
    }
}</code></pre>
<h3 id="💌-3-두-번째-activity로-넘어갔을-때-2번에서-점수를-기록했던-내용을-전달받을-수-있도록-intent-작성해주고-두-번째--activitiy에서-꺼내오기">💌 3. 두 번째 Activity로 넘어갔을 때 2번에서 점수를 기록했던 내용을 전달받을 수 있도록 Intent 작성해주고 두 번째  Activitiy에서 꺼내오기</h3>
<ul>
<li><h4 id="💫-mainactivityjava---intent-작성-_-putextra">💫 MainActivity.java - Intent 작성 _ putExtra</h4>
</li>
</ul>
<pre><code class="language-java">package com.cookandroid.w11_gallery;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        //정수를 저장할 수 있는 박스 9개를 만들어놓고 0으로 초기화
        int rating[] = new int[9];
        //원래 하던 것 : ImageView iv; --&gt; iv = (ImageView) findViewById (R.id.iv)
        ImageView image[] = new ImageView[9];

        Integer image_id[] = {R.id.iv1, R.id.iv2, R.id.iv3,
                R.id.iv4, R.id.iv5, R.id.iv6,
                R.id.iv7, R.id.iv8, R.id.iv9};

        for (int i = 0; i &lt; 9; i++) {

            rating[i] = 0;
            //캐스팅 하던 대로. ImageView img(변수) = (ImageView) findViewByID (R.id.--)
            image[i] = (ImageView) findViewById(image_id[i]);

            //final - 한 번 할당한 뒤 다시는 값을 바꾸지 않아야 할 경우에.(실수로라도 바꾸지 않게. 안전장치.)
            final int j = i;
            image[i].setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    rating[j]++;
                }
            });
        }

        Intent intent = getIntent();
        int r[] = intent.getIntArrayExtra(&quot;rating&quot;);

        Button bt = (Button) findViewById(R.id.btnResult);
        bt.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(MainActivity.this, ResultActivity.class);

                //intent 내용 전달할 때 putExtra 사용.(내용 꺼낼 때 - getExtra)
                intent.putExtra(&quot;rating&quot;, rating);
                startActivity(intent);
            }

        });
    }
}</code></pre>
<ul>
<li><h4 id="💫-resultactivityjava----intent-작성-_-getextra">💫 ResultActivity.java  - Intent 작성 _ getExtra</h4>
<pre><code class="language-java">package com.cookandroid.w11_gallery;
</code></pre>
</li>
</ul>
<p>import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;</p>
<p>public class ResultActivity extends Activity {</p>
<pre><code>@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.result);

    //인텐트 가져와서 사용
    Intent intent = getIntent();
    int r[] = intent.getIntArrayExtra(&quot;rating&quot;);

RatingBar br[] = new RatingBar[9];
    Integer br_id[] = {R.id.rbar1, R.id.rbar2, R.id.rbar3, R.id.rbar4,
            R.id.rbar5, R.id.rbar6, R.id.rbar7, R.id.rbar8, R.id.rbar9};

    for (int i=0; i&lt;9; i++){
        br[i] = (RatingBar) findViewById(br_id[i]);
        br[i].setRating((float)r[i]);
    }

    Button bt = (Button) findViewById(R.id.btnReturn);
    bt.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            finish();
        }
    });
}</code></pre><p>}</p>
<pre><code>### 4. 토스트메시지 띄우기까지 최종완성

- #### 💫 MainActivity.java
```java
package com.example.w11_rating;

import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity  {

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //제목을 변경해줍니다.
        setTitle(&quot;명화 선호도 투표&quot;);

        //그림 9개의 별점을 저장할 정수형 배열 선언하고
        int voteCount[] = new int[9];
        // 모든 값을 0으로 초기화 합니다.
        for (int i = 0; i &lt; 9; i++)
            voteCount[i] = 0;

        // 9개의 이미지뷰를 담을 이미지뷰의 어레이를 선언합니다.
        ImageView image[] = new ImageView[9];
        // 이미지뷰 각각의 ID를 담은 배열을 선언합니다.
        // 실제 저장중인 값은 정수형이기때문에 Integer로 선언합니다.
        Integer imageId[] = { R.id.iv1, R.id.iv2, R.id.iv3, R.id.iv4, R.id.iv5,
                R.id.iv6, R.id.iv7, R.id.iv8, R.id.iv9 };

        // 각 이미지의 이름을 저장하는 배열을 선언합니다.
        String imgName[] = { &quot;독서하는 소녀&quot;, &quot;꽃장식 모자 소녀&quot;, &quot;부채를 든 소녀&quot;,
                &quot;이레느깡 단 베르양&quot;, &quot;잠자는 소녀&quot;, &quot;테라스의 두 자매&quot;, &quot;피아노 레슨&quot;, &quot;피아노 앞의 소녀들&quot;,
                &quot;해변에서&quot; };

        // 반복문을 이용해서 이미지뷰에 xml코드 내의 위젯을 맵핑해줍니다.
        // 그리고 클릭리스너를 설정합니다.
        // 클릭리스너는 모든 뷰에 대해서 설정 가능합니다 :)
        for (int i = 0; i &lt; imageId.length; i++) {

            // 왜 이게 final이어야 하는지는 수업에서 말씀드리겠습니다.
            final int index = i;
            image[i] = (ImageView) findViewById(imageId[i]);
            image[i].setOnClickListener(new View.OnClickListener() {
                public void onClick(View v) {

                    // 클릭을 받은 그림의 평점을 1 증가시킵니다.
                    voteCount[index]++;

                    // 그리고 내가 수행한 결과를 토스트로 화면에 출력해줍니다.
                    Toast.makeText(getApplicationContext(),
                            imgName[index] + &quot;: 총 &quot; + voteCount[index] + &quot; 표&quot;,
                            Toast.LENGTH_SHORT).show();

                }
            });
        }

        // 결과를 나타내는 activity로 넘어가는 버튼을 작성합니다.
        Button btnFinish = (Button) findViewById(R.id.btnResult);
        btnFinish.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                //intent 를 생성합니다.
                Intent intent = new Intent(getApplicationContext(),
                        ResultActivity.class);

                // ResultActivity 로 전달할 내용을 putExtra함수로 저장합니다.
                // 이름은 getExtra에서 데이터를 꺼낼 때 사용합합니다.
                intent.putExtra(&quot;VoteCount&quot;, voteCount);
                intent.putExtra(&quot;ImageName&quot;, imgName);

                //ResultActivity를 실행합니다.
                startActivity(intent);
            }
        });

    }
}
</code></pre><ul>
<li><h4 id="💫-resultactivityjava">💫 ResultActivity.java</h4>
<pre><code class="language-java">package com.example.w11_rating;
</code></pre>
</li>
</ul>
<p>import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.RatingBar;
import android.widget.TextView;</p>
<p>public class ResultActivity extends AppCompatActivity {</p>
<pre><code>@Override
protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    // 결과를 나타내는 레이아웃을 지정합니다.
    setContentView(R.layout.result);
    // 제목을 설정합니다.
    setTitle(&quot;투표 결과&quot;);

    // MainActivity 에서 보낸 intent 를 받아옵니다.
    Intent intent = getIntent();

    // get~~~~~ 함수를 이용해서 데이터를 받아옵니다.
    int[] voteResult = intent.getIntArrayExtra(&quot;VoteCount&quot;);
    String[] imageName = intent.getStringArrayExtra(&quot;ImageName&quot;);

    // 9개의 TextView, RatingBar 를 담을 배열을 선언하고,
    TextView tv[] = new TextView[imageName.length];
    RatingBar rbar[] = new RatingBar[imageName.length];

    // 9개의 TextView, RatingBar 를 할당할 때 사용할 ID 배열을 만들어줍니다.
    // tvID는 intent로 받아와도 좋습니다.
    Integer tvID[] = { R.id.tv1, R.id.tv2, R.id.tv3, R.id.tv4, R.id.tv5,
            R.id.tv6, R.id.tv7, R.id.tv8, R.id.tv9 };
    Integer rbarID[] = { R.id.rbar1, R.id.rbar2, R.id.rbar3, R.id.rbar4,
            R.id.rbar5, R.id.rbar6, R.id.rbar7, R.id.rbar8, R.id.rbar9 };

    // TextView, RatingBar 에 위젯을 찾아다가 맵핑해줍니다.
    for (int i = 0; i &lt; voteResult.length; i++) {
        tv[i] = (TextView) findViewById(tvID[i]);
        rbar[i] = (RatingBar) findViewById(rbarID[i]);
    }

    // 각 TextVeiw 및 RatingBar에 넘겨 받은 값을 반영해줍니다.
    // 별점을 반할때에는 setRating 함수를 영사용합니다.
    for (int i = 0; i &lt; voteResult.length; i++) {
        tv[i].setText(imageName[i]);
        rbar[i].setRating((float) voteResult[i]);
    }

    // 돌아가기 버튼에 finish() 함수를 실행하도록 해서
    // 현재 activity를 종료할 수 있도록 합니다.
    Button btnReturn = (Button) findViewById(R.id.btnReturn);
    btnReturn.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            finish();

        }
    });

}</code></pre><p>}</p>
<pre><code></code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[[안드로이드 스튜디오] 갤러리 프로젝트(1) - intent 까지]]></title>
            <link>https://velog.io/@may-verde/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%EC%8A%A4%ED%8A%9C%EB%94%94%EC%98%A4-%EA%B0%A4%EB%9F%AC%EB%A6%AC-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8</link>
            <guid>https://velog.io/@may-verde/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%EC%8A%A4%ED%8A%9C%EB%94%94%EC%98%A4-%EA%B0%A4%EB%9F%AC%EB%A6%AC-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8</guid>
            <pubDate>Sat, 05 Jun 2021 07:26:40 GMT</pubDate>
            <description><![CDATA[<h3 id="0-초기설정-새로운-프로젝트-열고-기본-xml파일-삭제-후-아래의-파일-layout-아래에-붙여넣기">0. (초기설정) 새로운 프로젝트 열고 기본 xml파일 삭제 후 아래의 파일 layout 아래에 붙여넣기</h3>
<ul>
<li><h3 id="🧊-activity_mainxml">🧊 activity_main.xml</h3>
</li>
<li><h3 id="사진도-복붙해주면-아래와-같은-화면">사진도 복붙해주면 아래와 같은 화면</h3>
</li>
<li><h3 id="layout_height-layout_weight-눈여겨보기">layout_height, layout_weight 눈여겨보기</h3>
<p><img src="https://images.velog.io/images/may-verde/post/0e6849cc-210c-47eb-9b65-bb9b8df6b55b/image.png" alt="">
<img src="https://images.velog.io/images/may-verde/post/14f486ca-630a-45e8-bf82-0a4715dfe669/image.png" alt=""></p>
<pre><code class="language-xml">&lt;LinearLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
  xmlns:tools=&quot;http://schemas.android.com/tools&quot;
  android:layout_width=&quot;match_parent&quot;
  android:layout_height=&quot;match_parent&quot;
  android:orientation=&quot;vertical&quot; &gt;

  &lt;LinearLayout
      android:layout_width=&quot;match_parent&quot;
      android:layout_height=&quot;0dp&quot;
      android:layout_weight=&quot;3&quot; &gt;

      &lt;ImageView
          android:id=&quot;@+id/iv1&quot;
          android:layout_width=&quot;wrap_content&quot;
          android:layout_height=&quot;wrap_content&quot;
          android:layout_margin=&quot;5dp&quot;
          android:layout_weight=&quot;1&quot;
          android:src=&quot;@drawable/pic1&quot; /&gt;

      &lt;ImageView
          android:id=&quot;@+id/iv2&quot;
          android:layout_width=&quot;wrap_content&quot;
          android:layout_height=&quot;wrap_content&quot;
          android:layout_margin=&quot;5dp&quot;
          android:layout_weight=&quot;1&quot;
          android:src=&quot;@drawable/pic2&quot; /&gt;

      &lt;ImageView
          android:id=&quot;@+id/iv3&quot;
          android:layout_width=&quot;wrap_content&quot;
          android:layout_height=&quot;wrap_content&quot;
          android:layout_margin=&quot;5dp&quot;
          android:layout_weight=&quot;1&quot;
          android:src=&quot;@drawable/pic3&quot; /&gt;
  &lt;/LinearLayout&gt;

  &lt;LinearLayout
      android:layout_width=&quot;match_parent&quot;
      android:layout_height=&quot;0dp&quot;
      android:layout_weight=&quot;3&quot; &gt;

      &lt;ImageView
          android:id=&quot;@+id/iv4&quot;
          android:layout_width=&quot;wrap_content&quot;
          android:layout_height=&quot;wrap_content&quot;
          android:layout_margin=&quot;5dp&quot;
          android:layout_weight=&quot;1&quot;
          android:src=&quot;@drawable/pic4&quot; /&gt;

      &lt;ImageView
          android:id=&quot;@+id/iv5&quot;
          android:layout_width=&quot;wrap_content&quot;
          android:layout_height=&quot;wrap_content&quot;
          android:layout_margin=&quot;5dp&quot;
          android:layout_weight=&quot;1&quot;
          android:src=&quot;@drawable/pic5&quot; /&gt;

      &lt;ImageView
          android:id=&quot;@+id/iv6&quot;
          android:layout_width=&quot;wrap_content&quot;
          android:layout_height=&quot;wrap_content&quot;
          android:layout_margin=&quot;5dp&quot;
          android:layout_weight=&quot;1&quot;
          android:src=&quot;@drawable/pic6&quot; /&gt;
  &lt;/LinearLayout&gt;

  &lt;LinearLayout
      android:layout_width=&quot;match_parent&quot;
      android:layout_height=&quot;0dp&quot;
      android:layout_weight=&quot;3&quot; &gt;

      &lt;ImageView
          android:id=&quot;@+id/iv7&quot;
          android:layout_width=&quot;wrap_content&quot;
          android:layout_height=&quot;wrap_content&quot;
          android:layout_margin=&quot;5dp&quot;
          android:layout_weight=&quot;1&quot;
          android:src=&quot;@drawable/pic7&quot; /&gt;

      &lt;ImageView
          android:id=&quot;@+id/iv8&quot;
          android:layout_width=&quot;wrap_content&quot;
          android:layout_height=&quot;wrap_content&quot;
          android:layout_margin=&quot;5dp&quot;
          android:layout_weight=&quot;1&quot;
          android:src=&quot;@drawable/pic8&quot; /&gt;

      &lt;ImageView
          android:id=&quot;@+id/iv9&quot;
          android:layout_width=&quot;wrap_content&quot;
          android:layout_height=&quot;wrap_content&quot;
          android:layout_margin=&quot;5dp&quot;
          android:layout_weight=&quot;1&quot;
          android:src=&quot;@drawable/pic9&quot; /&gt;
  &lt;/LinearLayout&gt;

  &lt;Button
      android:id=&quot;@+id/btnResult&quot;
      android:layout_width=&quot;match_parent&quot;
      android:layout_height=&quot;0dp&quot;
      android:layout_weight=&quot;1&quot;
      android:text=&quot;투표 종료&quot; /&gt;
</code></pre>
</li>
</ul>
</LinearLayout>
```
- ### 🧊 result.xml
- ### 나타나는 화면은 다음과 같음 ![](https://images.velog.io/images/may-verde/post/57ce17c9-edac-465f-82af-37aa5dca81df/image.png)
- ### 레이아웃의 형태![](https://images.velog.io/images/may-verde/post/fd4dec87-7b02-44df-b569-9373a9c81599/image.png)
- #### 첫번째 TableRow![](https://images.velog.io/images/may-verde/post/c3904dba-2124-43f5-9eda-cfd04d3c9824/image.png)
- #### 마지막 TableRow![](https://images.velog.io/images/may-verde/post/ffa4a8b8-ff4e-4555-a699-367e7226e080/image.png)
- ### 코드
```xml
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center_vertical"
    android:stretchColumns="0" >

<pre><code>&lt;TableRow&gt;

    &lt;TextView
        android:id=&quot;@+id/tv1&quot;
        android:layout_gravity=&quot;center_vertical&quot;
        android:text=&quot;그림1&quot;
        android:textSize=&quot;15dp&quot; /&gt;

    &lt;RatingBar
        android:id=&quot;@+id/rbar1&quot;
        style=&quot;?android:attr/ratingBarStyleIndicator&quot;
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:layout_gravity=&quot;right&quot; &gt;
    &lt;/RatingBar&gt;
&lt;/TableRow&gt;

&lt;TableRow&gt;

    &lt;TextView
        android:id=&quot;@+id/tv2&quot;
        android:layout_gravity=&quot;center_vertical&quot;
        android:text=&quot;그림2&quot;
        android:textSize=&quot;15dp&quot; /&gt;

    &lt;RatingBar
        android:id=&quot;@+id/rbar2&quot;
        style=&quot;?android:attr/ratingBarStyleIndicator&quot;
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:layout_gravity=&quot;right&quot; &gt;
    &lt;/RatingBar&gt;
&lt;/TableRow&gt;

&lt;TableRow&gt;

    &lt;TextView
        android:id=&quot;@+id/tv3&quot;
        android:layout_gravity=&quot;center_vertical&quot;
        android:text=&quot;그림3&quot;
        android:textSize=&quot;15dp&quot; /&gt;

    &lt;RatingBar
        android:id=&quot;@+id/rbar3&quot;
        style=&quot;?android:attr/ratingBarStyleIndicator&quot;
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:layout_gravity=&quot;right&quot; &gt;
    &lt;/RatingBar&gt;
&lt;/TableRow&gt;

&lt;TableRow&gt;

    &lt;TextView
        android:id=&quot;@+id/tv4&quot;
        android:layout_gravity=&quot;center_vertical&quot;
        android:text=&quot;그림4&quot;
        android:textSize=&quot;15dp&quot; /&gt;

    &lt;RatingBar
        android:id=&quot;@+id/rbar4&quot;
        style=&quot;?android:attr/ratingBarStyleIndicator&quot;
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:layout_gravity=&quot;right&quot; &gt;
    &lt;/RatingBar&gt;
&lt;/TableRow&gt;

&lt;TableRow&gt;

    &lt;TextView
        android:id=&quot;@+id/tv5&quot;
        android:layout_gravity=&quot;center_vertical&quot;
        android:text=&quot;그림5&quot;
        android:textSize=&quot;15dp&quot; /&gt;

    &lt;RatingBar
        android:id=&quot;@+id/rbar5&quot;
        style=&quot;?android:attr/ratingBarStyleIndicator&quot;
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:layout_gravity=&quot;right&quot; &gt;
    &lt;/RatingBar&gt;
&lt;/TableRow&gt;

&lt;TableRow&gt;

    &lt;TextView
        android:id=&quot;@+id/tv6&quot;
        android:layout_gravity=&quot;center_vertical&quot;
        android:text=&quot;그림6&quot;
        android:textSize=&quot;15dp&quot; /&gt;

    &lt;RatingBar
        android:id=&quot;@+id/rbar6&quot;
        style=&quot;?android:attr/ratingBarStyleIndicator&quot;
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:layout_gravity=&quot;right&quot; &gt;
    &lt;/RatingBar&gt;
&lt;/TableRow&gt;

&lt;TableRow&gt;

    &lt;TextView
        android:id=&quot;@+id/tv7&quot;
        android:layout_gravity=&quot;center_vertical&quot;
        android:text=&quot;그림7&quot;
        android:textSize=&quot;15dp&quot; /&gt;

    &lt;RatingBar
        android:id=&quot;@+id/rbar7&quot;
        style=&quot;?android:attr/ratingBarStyleIndicator&quot;
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:layout_gravity=&quot;right&quot; &gt;
    &lt;/RatingBar&gt;
&lt;/TableRow&gt;

&lt;TableRow&gt;

    &lt;TextView
        android:id=&quot;@+id/tv8&quot;
        android:layout_gravity=&quot;center_vertical&quot;
        android:text=&quot;그림8&quot;
        android:textSize=&quot;15dp&quot; /&gt;

    &lt;RatingBar
        android:id=&quot;@+id/rbar8&quot;
        style=&quot;?android:attr/ratingBarStyleIndicator&quot;
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:layout_gravity=&quot;right&quot; &gt;
    &lt;/RatingBar&gt;
&lt;/TableRow&gt;

&lt;TableRow&gt;

    &lt;TextView
        android:id=&quot;@+id/tv9&quot;
        android:layout_gravity=&quot;center_vertical&quot;
        android:text=&quot;그림9&quot;
        android:textSize=&quot;15dp&quot; /&gt;

    &lt;RatingBar
        android:id=&quot;@+id/rbar9&quot;
        style=&quot;?android:attr/ratingBarStyleIndicator&quot;
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:layout_gravity=&quot;right&quot; &gt;
    &lt;/RatingBar&gt;
&lt;/TableRow&gt;

&lt;TableRow&gt;

    &lt;Button
        android:id=&quot;@+id/btnReturn&quot;
        android:layout_width=&quot;wrap_content&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:layout_span=&quot;2&quot;
        android:text=&quot;돌아가기&quot; /&gt;
&lt;/TableRow&gt;</code></pre></TableLayout>
```
## 🍕 진행순서

<ol>
<li>&#39;투표 종료&#39; 눌렀을 때 두 번째 Activity로 넘어가게 하기</li>
<li>그림 하나하나 눌렀을 때 별점 올라가도록 코드 작성</li>
<li>두 번째 Activity로 넘어갔을 때 2번에서 점수를 기록했던 내용을 전달받을 수 있도록 Intent 작성해주고 두 번째  Activitiy에서 꺼내오기</li>
</ol>
<h3 id="1-투표-종료-클릭-시-두-번째-activity-로-넘어가게-하기">1. &#39;투표 종료&#39; 클릭 시 두 번째 Activity 로 넘어가게 하기</h3>
<h4 id="🔰-mainactivityjava-작성----resultactivityjava-클래스-생성-및-작성----span-style--colorredandroidmanifestxml-에-추가-액티비티-알려주기-잊지마span">🔰 MainActivity.java 작성 --&gt; ResultActivity.java 클래스 생성 및 작성 --&gt; <span style = "color:red">AndroidManifest.xml 에 추가 액티비티 알려주기 (!!잊지마!!)</span></h4>
<ul>
<li><h4 id="🪐-mainactivityjava-코드">🪐 MainActivity.java 코드</h4>
</li>
</ul>
<pre><code class="language-java">package com.cookandroid.w11_gallery;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button bt = (Button) findViewById(R.id.btnResult);
        bt.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(MainActivity.this, ResultActivity.class);
                startActivity(intent);
            }
        });
    }
}

</code></pre>
<ul>
<li><h4 id="🪐-resultactivityjava-코드">🪐 ResultActivity.java 코드</h4>
<pre><code class="language-java">package com.cookandroid.w11_gallery;
</code></pre>
</li>
</ul>
<p>import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;</p>
<p>public class ResultActivity extends Activity {</p>
<pre><code>@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.result);

    Button bt = (Button) findViewById(R.id.btnReturn);
    bt.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            finish();
        }
    });
}</code></pre><p>}</p>
<pre><code>- #### 🪐 AndroidManifest.xml 에 두 번째 액티비티 추가
- ```xml
&lt;activity android:name=&quot;.ResultActivity&quot;&gt;&lt;/activity&gt;</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[[안드로이트 스튜디오] 세컨드 액티비티 생성하기 - Intent]]></title>
            <link>https://velog.io/@may-verde/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%ED%8A%B8-%EC%8A%A4%ED%8A%9C%EB%94%94%EC%98%A4-%EC%84%B8%EC%BB%A8%EB%93%9C-%EC%95%A1%ED%8B%B0%EB%B9%84%ED%8B%B0-%EC%83%9D%EC%84%B1%ED%95%98%EA%B8%B0</link>
            <guid>https://velog.io/@may-verde/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%ED%8A%B8-%EC%8A%A4%ED%8A%9C%EB%94%94%EC%98%A4-%EC%84%B8%EC%BB%A8%EB%93%9C-%EC%95%A1%ED%8B%B0%EB%B9%84%ED%8B%B0-%EC%83%9D%EC%84%B1%ED%95%98%EA%B8%B0</guid>
            <pubDate>Sat, 05 Jun 2021 07:04:13 GMT</pubDate>
            <description><![CDATA[<h1 id="📌span-style--colorblue세컨드-액티비티-생성하기-span">📌<span style = "color:blue">세컨드 액티비티 생성하기 </span></h1>
<h3 id="1-세컨드-액티비티에서-사용할-xml-파일-생성">1. 세컨드 액티비티에서 사용할 xml 파일 생성</h3>
<ul>
<li><p>second.xml</p>
<pre><code class="language-xml">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;LinearLayout
  xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot; android:layout_width=&quot;match_parent&quot;
  android:layout_height=&quot;match_parent&quot;&gt;

  &lt;Button
      android:layout_width=&quot;match_parent&quot;
      android:layout_height=&quot;wrap_content&quot;
      android:text=&quot;이게 세컨드입니다.&quot;
      android:id=&quot;@+id/bt_second&quot;&gt;&lt;/Button&gt;
</code></pre>
</li>
</ul>
</LinearLayout>
```
### 2. 세컨드 액티비티에서 사용할 java 파일 생성하고 이름짓기
![](https://images.velog.io/images/may-verde/post/c940ab52-25f6-4416-a012-279df9328e08/image.png)![](https://images.velog.io/images/may-verde/post/e721061f-c6c3-4ac9-96c0-4bf25c28cdfd/image.png)
### 3. Activity 상속받게 하기
- SecondActivity 만들자마자(아래) 모습에서
```java
package com.cookandroid.w11;

<p>public class SecondActivity {
}</p>
<pre><code>- 아래와 같이 &quot;extends Activity&quot; 해준다. 액티비티로 사용할 거니까. (import는 자동으로 됨)
```java
package com.cookandroid.w11;
import android.app.Activity;

public class SecondActivity extends Activity {
}</code></pre><h3 id="4-mainactivityjava-작성---secondactivity-불러오는-intent-선언하기">4. MainActivity.java 작성 - SecondActivity 불러오는 Intent 선언하기</h3>
<pre><code class="language-java">package com.cookandroid.w11;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        Button bt = (Button) findViewById(R.id.bt_main);

        bt.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //Intent 선언, MainActivity.this가 SecondActivity.class를 불러내게 된다.
                Intent intent = new Intent(MainActivity.this, SecondActivity.class);
                //생성한 intent를 파라미터로 전달하면, startActivity가 전달받은 intent를 이용해서 SecondActivity를 실행시켜줌.
                startActivity(intent);
            }
        });


    }
}</code></pre>
<h3 id="5-secondactivity-작성---mainactivity-참고">5. SecondActivity 작성 - MainActivity 참고</h3>
<pre><code class="language-java">package com.cookandroid.w11;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class SecondActivity extends Activity {

    //MainActivity에서 onCreat복붙해옴. Code-OverrideMethods에서 가져와도 되지만.
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //복붙해왔다면 R.layout뒤에 second로 수정해주기
        setContentView(R.layout.second);

        //MainActivity에서 가져와 수정하기
        Button bt = (Button) findViewById(R.id.bt_second);

        bt.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                //intent 실행이 아니라 Second 액티비티가 종료되게. finish
                finish();
            }
        });
    }
}
</code></pre>
<h3 id="6-androidmanifestxml에-secondactivity-파일-알려주기">6. AndroidManifest.xml에 SecondActivity 파일 알려주기</h3>
<pre><code class="language-xml">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;manifest xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
    package=&quot;com.cookandroid.w11&quot;&gt;

    &lt;application
        android:allowBackup=&quot;true&quot;
        android:icon=&quot;@mipmap/ic_launcher&quot;
        android:label=&quot;@string/app_name&quot;
        android:roundIcon=&quot;@mipmap/ic_launcher_round&quot;
        android:supportsRtl=&quot;true&quot;
        android:theme=&quot;@style/Theme.W11&quot;&gt;
        &lt;activity android:name=&quot;.MainActivity&quot;&gt;
            &lt;intent-filter&gt;
                &lt;action android:name=&quot;android.intent.action.MAIN&quot; /&gt;

                &lt;category android:name=&quot;android.intent.category.LAUNCHER&quot; /&gt;
            &lt;/intent-filter&gt;
        &lt;/activity&gt;

        ***여기 이렇게!!!!!!***
        &lt;activity android:name=&quot;.SecondActivity&quot;&gt;&lt;/activity&gt;

    &lt;/application&gt;

&lt;/manifest&gt;</code></pre>
<h3 id="7-완성화면">7. 완성화면</h3>
<ul>
<li>[이게 메인입니다] 버튼 클릭 --&gt; 새로운 창 뜨고 --&gt; 새로운 창에서 [이게 세컨드입니다] 버튼 클릭 --&gt; 다시 처음 창으로 돌아옴</li>
<li><img src="https://images.velog.io/images/may-verde/post/384451a2-adb1-4121-b0bf-25bc8bfaa199/image.png" alt=""><img src="https://images.velog.io/images/may-verde/post/34e9fdd8-3235-4392-b6ea-849254cc375a/image.png" alt=""><img src="https://images.velog.io/images/may-verde/post/4a7455cc-64f6-4ccd-8f22-0b093997976b/image.png" alt=""></li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[[안드로이드 스튜디오] 대화상자 만들기(📌java코드 중요📌)]]></title>
            <link>https://velog.io/@may-verde/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%EC%8A%A4%ED%8A%9C%EB%94%94%EC%98%A4-%EB%8C%80%ED%99%94%EC%83%81%EC%9E%90-%EB%A7%8C%EB%93%A4%EA%B8%B0-gravity%EC%99%80-layoutgravity</link>
            <guid>https://velog.io/@may-verde/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%EC%8A%A4%ED%8A%9C%EB%94%94%EC%98%A4-%EB%8C%80%ED%99%94%EC%83%81%EC%9E%90-%EB%A7%8C%EB%93%A4%EA%B8%B0-gravity%EC%99%80-layoutgravity</guid>
            <pubDate>Fri, 04 Jun 2021 08:45:48 GMT</pubDate>
            <description><![CDATA[<h1 id="🎨span-stylecolordarkslateblue대화상자---alertdialogbuilder-활용span">🎨<span style="color:DarkSlateBlue">대화상자 - &quot;AlertDialog.Builder&quot; 활용</span></h1>
<h4 id="대화상자-사용자에게-메시지를-전달하거나-사용자의-입력을-받기-위함">대화상자-사용자에게 메시지를 전달하거나 사용자의 입력을 받기 위함.</h4>
<p><img src="https://images.velog.io/images/may-verde/post/20c0c2b7-dce2-4779-921c-4e5e22ba30ec/image.png" alt=""></p>
<h2 id="🧨-완성-화면">🧨 완성 화면</h2>
<p><img src="https://images.velog.io/images/may-verde/post/e32e9cf9-90cd-4aad-9e13-1ba47b36ec8b/image.png" alt=""></p>
<h2 id="🧨-activity_mainxml코드">🧨 activity_main.xml코드</h2>
<pre><code class="language-xml">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;LinearLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
    xmlns:app=&quot;http://schemas.android.com/apk/res-auto&quot;
    xmlns:tools=&quot;http://schemas.android.com/tools&quot;
    android:layout_width=&quot;match_parent&quot;
    android:layout_height=&quot;match_parent&quot;
    tools:context=&quot;.MainActivity&quot;
    android:orientation=&quot;vertical&quot;
    android:gravity=&quot;center_horizontal&quot;&gt;

    &lt;TextView
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:id=&quot;@+id/tv1&quot;
        android:text=&quot;이메일&quot;&gt;&lt;/TextView&gt;

    &lt;TextView
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:id=&quot;@+id/tv2&quot;
        android:text=&quot;이름&quot;&gt;&lt;/TextView&gt;

    &lt;Button
        android:layout_width=&quot;wrap_content&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:id=&quot;@+id/bt&quot;
        android:text=&quot;입력하기&quot;&gt;&lt;/Button&gt;

&lt;/LinearLayout&gt;
</code></pre>
<h2 id="🧨-java-코드">🧨 java 코드</h2>
<pre><code class="language-java">package com.cookandroid.w10_menu;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;

import android.graphics.Color;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;

public class MainActivity extends AppCompatActivity {

    Button bt;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        bt = (Button) findViewById(R.id.bt);
        bt.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                AlertDialog.Builder d = new AlertDialog.Builder(MainActivity.this);

                d.setTitle(&quot;제목&quot;);
                d.setMessage(&quot;내용&quot;);

                d.show();
            }
        });
    }
}</code></pre>
<h2 id="🧨-대화상자-xml-파일-생성하기">🧨 대화상자 xml 파일 생성하기</h2>
<h3 id="layout--new--layout-resource-file--dialogxml-파일-생성">layout--&gt;New--&gt;Layout Resource File--&gt;(dialog).xml 파일 생성</h3>
<p><img src="https://images.velog.io/images/may-verde/post/060cb606-4238-4ef6-9897-aea54e222014/image.png" alt=""></p>
<p><img src="https://images.velog.io/images/may-verde/post/f626950a-32e5-4db8-9224-4c271a425e78/image.png" alt=""></p>
<h2 id="📌-완성화면">📌 완성화면</h2>
<p><img src="https://images.velog.io/images/may-verde/post/9ae98e64-5129-422e-885c-e536fca14837/image.png" alt=""><img src="https://images.velog.io/images/may-verde/post/b0bd3bd4-53eb-463d-8a06-a373ca609808/image.png" alt=""><img src="https://images.velog.io/images/may-verde/post/c384e903-45ca-4c2d-a08c-cdc556441afe/image.png" alt=""><img src="https://images.velog.io/images/may-verde/post/b708a475-2ee1-4761-bf53-0ed8ec944e7c/image.png" alt=""></p>
<h2 id="📌-dialogxml코드-대화상자의-생김새">📌 dialog.xml코드 (대화상자의 생김새)</h2>
<pre><code class="language-xml">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;LinearLayout
    xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot; android:layout_width=&quot;match_parent&quot;
    android:layout_height=&quot;match_parent&quot; android:orientation=&quot;vertical&quot;&gt;

    &lt;TextView
        android:layout_width=&quot;wrap_content&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:text=&quot;email&quot;&gt;&lt;/TextView&gt;

    &lt;EditText
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:id=&quot;@+id/et_mail&quot;&gt;&lt;/EditText&gt;

    &lt;TextView
        android:layout_width=&quot;wrap_content&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:text=&quot;name&quot;&gt;&lt;/TextView&gt;

    &lt;EditText
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:id=&quot;@+id/et_name&quot;&gt;&lt;/EditText&gt;

&lt;/LinearLayout&gt;</code></pre>
<h2 id="📌-java-코드-🎀🎀🎀-직접-새로-작성---익숙해지기">📌 java 코드 🎀🎀🎀 (직접 새로 작성 - 익숙해지기)</h2>
<pre><code class="language-java">package com.cookandroid.w10_menu;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;

import android.content.DialogInterface;
import android.graphics.Color;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    Button bt;

    //dialog.xml 연결해주는 View 선언하고,
    View v_d;

    TextView tv1;
    TextView tv2;
    EditText et1;
    EditText et2;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        tv1 = (TextView) findViewById(R.id.tv1);
        tv2 = (TextView) findViewById(R.id.tv2);

        bt = (Button) findViewById(R.id.bt);
        bt.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //onClick 함수가 Dialog(대화상자)를 만들어 줌.
                AlertDialog.Builder d = new AlertDialog.Builder(MainActivity.this);

                d.setTitle(&quot;제목&quot;);

                //View.inflate 이용하여 그 뷰에 해당하는 것을 &#39;구현/실행&#39;해주고,
                v_d = (View) View.inflate(MainActivity.this, R.layout.dialog, null);
                //실행한 것을 setView 함수로 전달.
                d.setView(v_d);

                d.setPositiveButton(&quot;입력&quot;,
                        new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialogInterface, int i) {

                                //dialog라는 레이아웃이 실제로 생성(inflate)되고 난 다음에, v_d라는 애를 통해서,
                                //그 안에 속한 것 중에서 찾아오는 것이 가능하다.
                                //setPositiveButton이 눌리게 되었을 때, dialog에 해당하는 우리가 만든 View (=v_d)로부터 et를 찾아옴
                                et1 = (EditText) v_d.findViewById(R.id.et_mail);
                                et2 = (EditText) v_d.findViewById(R.id.et_name);

                                //사용자에게 입력받은 et1, et2를 tv1, tv2에 표시
                                tv1.setText(et1.getText());
                                tv2.setText(et2.getText());

                            }
                        });

                d.show();
            }
        });
    }
}</code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[[안드로이드 스튜디오] 컨텍스트 메뉴]]></title>
            <link>https://velog.io/@may-verde/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%EC%8A%A4%ED%8A%9C%EB%94%94%EC%98%A4-%EC%BB%A8%ED%85%8D%EC%8A%A4%ED%8A%B8-%EB%A9%94%EB%89%B4</link>
            <guid>https://velog.io/@may-verde/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%EC%8A%A4%ED%8A%9C%EB%94%94%EC%98%A4-%EC%BB%A8%ED%85%8D%EC%8A%A4%ED%8A%B8-%EB%A9%94%EB%89%B4</guid>
            <pubDate>Fri, 04 Jun 2021 08:25:59 GMT</pubDate>
            <description><![CDATA[<p>🔰 먼저 &quot;색깔 변경&quot; 버튼을 누르면 배경화면 색깔이 달라지는 코드를 작성해보자</p>
<h2 id="xml-코드">xml 코드</h2>
<pre><code class="language-xml">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;LinearLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
    xmlns:app=&quot;http://schemas.android.com/apk/res-auto&quot;
    xmlns:tools=&quot;http://schemas.android.com/tools&quot;
    android:layout_width=&quot;match_parent&quot;
    android:layout_height=&quot;match_parent&quot;
    tools:context=&quot;.MainActivity&quot;
    android:orientation=&quot;vertical&quot;
    android:id=&quot;@+id/base&quot;&gt;

    &lt;Button
        android:layout_width=&quot;wrap_content&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:id=&quot;@+id/bt&quot;
        android:text=&quot;색깔 변경&quot;
        android:layout_gravity=&quot;center_horizontal&quot;&gt;&lt;/Button&gt;

&lt;/LinearLayout&gt;</code></pre>
<p><img src="https://images.velog.io/images/may-verde/post/2f2882a2-6e94-428c-9fe3-cc0f9aeef51b/KakaoTalk_20210604_163151250.jpg" alt="">
<img src="https://images.velog.io/images/may-verde/post/6451d3ca-7239-4052-9dd7-c5f1df2b2eb0/KakaoTalk_20210604_163151250_01.jpg" alt=""></p>
<h2 id="java-코드">java 코드</h2>
<pre><code class="language-java">
package com.cookandroid.w10_menu;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;

import android.graphics.Color;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;

public class MainActivity extends AppCompatActivity {

    Button bt;
    LinearLayout base;
    int count=0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        bt = (Button) findViewById(R.id.bt);
        base = (LinearLayout) findViewById(R.id.base);

        bt.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                count = (count + 1) % 3;

                switch(count){
                    case 0:
                        base.setBackgroundColor(Color.RED);
                        break;
                    case 1:
                        base.setBackgroundColor(Color.BLUE);
                        break;
                    case 2:
                        base.setBackgroundColor(Color.GREEN);
                        break;
                }
            }
        });
    }


}</code></pre>
<h1 id="🔰-다음으로-컨텍스트-메뉴-작성하기">🔰 다음으로 컨텍스트 메뉴 작성하기</h1>
<h4 id="🔋-완성이미지">🔋 완성이미지</h4>
<p><img src="https://images.velog.io/images/may-verde/post/92edc5b1-1052-42f3-9dcb-f422c48b70a9/image.png" alt=""></p>
<h4 id="🧵-작성-순서">🧵 작성 순서</h4>
<p><img src="https://images.velog.io/images/may-verde/post/e644db52-b085-4ff9-b3d9-36847e9ec100/image.png" alt=""></p>
<h2 id="🔋-activity_mainxml">🔋 activity_main.xml</h2>
<pre><code class="language-xml">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;LinearLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
    xmlns:app=&quot;http://schemas.android.com/apk/res-auto&quot;
    xmlns:tools=&quot;http://schemas.android.com/tools&quot;
    android:layout_width=&quot;match_parent&quot;
    android:layout_height=&quot;match_parent&quot;
    tools:context=&quot;.MainActivity&quot;
    android:orientation=&quot;vertical&quot;
    android:id=&quot;@+id/base&quot;&gt;

    &lt;Button
        android:layout_width=&quot;wrap_content&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:id=&quot;@+id/bt&quot;
        android:text=&quot;색깔 변경&quot;
        android:layout_gravity=&quot;center_horizontal&quot;&gt;&lt;/Button&gt;

&lt;/LinearLayout&gt;
</code></pre>
<h2 id="🔋-menu1xml">🔋 menu1.xml</h2>
<pre><code class="language-xml">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;menu xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;&gt;

    &lt;item
        android:id=&quot;@+id/red&quot;
        android:title=&quot;빨간색&quot;&gt;&lt;/item&gt;

    &lt;item
        android:id=&quot;@+id/blue&quot;
        android:title=&quot;파란색&quot;&gt;&lt;/item&gt;

    &lt;item
        android:id=&quot;@+id/green&quot;
        android:title=&quot;초록색&quot;&gt;&lt;/item&gt;

&lt;/menu&gt;</code></pre>
<h2 id="🔋-mainactivityjava">🔋 MainActivity.java</h2>
<pre><code class="language-java">package com.cookandroid.w10_menu;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;

import android.graphics.Color;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;

public class MainActivity extends AppCompatActivity {

    Button bt;
    LinearLayout base;
    int count=0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        bt = (Button) findViewById(R.id.bt);
        base = (LinearLayout) findViewById(R.id.base);

        registerForContextMenu(bt);

        bt.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                count = (count + 1) % 3;

                switch(count){
                    case 0:
                        base.setBackgroundColor(Color.RED);
                        break;
                    case 1:
                        base.setBackgroundColor(Color.BLUE);
                        break;
                    case 2:
                        base.setBackgroundColor(Color.GREEN);
                        break;
                }
            }
        });
    }

    @Override
    //메뉴 파일 등록
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
        super.onCreateContextMenu(menu, v, menuInfo);

        //메뉴를 실제로 화면에 띄워주는 역할을 할 Inflater 작성
        MenuInflater m = getMenuInflater();

        /*옵션 메뉴의 경우 화면 안에 점 세개로 메뉴가 존재하기 때문에, &#39;무엇&#39;에 대한 메뉴인지에 대한 설명이 필요 없었지만,
        컨텍스트 메뉴는 그러한 화면 위의 표시가 없기 때문에, 예를 들어 버튼 각각에 대한 메뉴를 만들어 주고 싶다면 어떤 버튼인지를 지정해줘야 함.
        그래서 컨텍스트 메뉴를 만들어주는 메서드(onCreatContextMenu)안에서, 지금 누구에 해당하는 컨텍스트를 만들어 줄지를 구분해줘야 함.*/
        if(v == bt){
            m.inflate(R.menu.menu1, menu);
        }
    }

    @Override
    public boolean onContextItemSelected(@NonNull MenuItem item) {
        super.onContextItemSelected(item);

        switch(item.getItemId()){
            case R.id.red:
                base.setBackgroundColor(Color.RED);
                count = 0;
                break;
            case R.id.blue:
                base.setBackgroundColor(Color.BLUE);
                count = 1;
                break;
            case R.id.green:
                base.setBackgroundColor(Color.GREEN);
                count = 2;
                break;
        }

        return true;
    }
}</code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[[안드로이드 스튜디오] 옵션메뉴]]></title>
            <link>https://velog.io/@may-verde/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%EC%8A%A4%ED%8A%9C%EB%94%94%EC%98%A4-%EC%98%B5%EC%85%98%EB%A9%94%EB%89%B4</link>
            <guid>https://velog.io/@may-verde/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%EC%8A%A4%ED%8A%9C%EB%94%94%EC%98%A4-%EC%98%B5%EC%85%98%EB%A9%94%EB%89%B4</guid>
            <pubDate>Fri, 04 Jun 2021 02:56:12 GMT</pubDate>
            <description><![CDATA[<p>옵션메뉴 만들기
<img src="https://images.velog.io/images/may-verde/post/094cac4c-a710-4511-bee0-17b8e7efd258/image.png" alt=""></p>
<h1 id="activity_mainxml-코드">activity_main.xml 코드</h1>
<pre><code class="language-xml">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;LinearLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
    xmlns:app=&quot;http://schemas.android.com/apk/res-auto&quot;
    xmlns:tools=&quot;http://schemas.android.com/tools&quot;
    android:layout_width=&quot;match_parent&quot;
    android:layout_height=&quot;match_parent&quot;
    tools:context=&quot;.MainActivity&quot;
    android:orientation=&quot;vertical&quot;

    &lt;!--옵션메뉴를 선택하면 레이아웃 배경색을 바꿀 수 있게 메뉴를 
만들 것이므로 레이아웃에 아이디를 지정해준다.--!&gt;

    android:id=&quot;@+id/base&quot;&gt;



&lt;/LinearLayout&gt;
</code></pre>
<h1 id="menu1xml-코드">menu1.xml 코드</h1>
<pre><code class="language-xml">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;menu xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;&gt;

    &lt;item
        android:id=&quot;@+id/red&quot;
        android:title=&quot;빨간색&quot;&gt;&lt;/item&gt;

    &lt;item
        android:id=&quot;@+id/blue&quot;
        android:title=&quot;파란색&quot;&gt;&lt;/item&gt;


    &lt;item android:title=&quot;추가메뉴&quot;&gt;

        &lt;menu&gt;

            &lt;item
                android:id=&quot;@+id/yellow&quot;
                android:title=&quot;노란색&quot;&gt;&lt;/item&gt;

            &lt;item
                android:id=&quot;@+id/green&quot;
                android:title=&quot;초록색&quot;&gt;&lt;/item&gt;

        &lt;/menu&gt;

    &lt;/item&gt;

&lt;/menu&gt;
</code></pre>
<h1 id="java코드">java코드</h1>
<h4 id="➰-옵션-메뉴를-실행시켜주는-메소드---oncreatoptionmenu">➰ 옵션 메뉴를 실행시켜주는 메소드 - onCreatOptionMenu</h4>
<h4 id="➰-oncreat-메소드-밖에-커서-위치-후">➰ Oncreat 메소드 밖에!! 커서 위치 후</h4>
<h4 id="➰-code--override-methods--androidappacticity--oncreatoptionsmenu-선택">➰ Code--&gt;Override Methods--&gt;Android.app.Acticity--&gt;onCreatOptionsMenu 선택</h4>
<pre><code class="language-java">
@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        return super.onCreateOptionsMenu(menu);
</code></pre>
<h4 id="이렇게-불러와진-상태에서-마지막-행의-return과-superoncreatoptionsmenu를-분리시켜줌아래와-같이--return-뒤에-true추가">이렇게 불러와진 상태에서, 마지막 행의 return과 super.onCreatOptionsMenu를 분리시켜줌***(아래와 같이) + return 뒤에 &#39;true;&#39;추가</h4>
<pre><code class="language-java">
package com.cookandroid.w10_menu;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.Menu;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        super.onCreateOptionsMenu(menu);

        return true;
    }

}
</code></pre>
<h4 id="menuinflater-추가해주기-암기-메뉴-만들-때마다-항상-추가됨">MenuInflater 추가해주기. (암기) 메뉴 만들 때마다 항상 추가됨.</h4>
<pre><code class="language-java">@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        super.onCreateOptionsMenu(menu);

        //메뉴 인플레이터 선언과 inflate 함수 작성
        MenuInflater m = getMenuInflater();
        m.inflate(R.menu.menu1, menu);

        return true;
    }</code></pre>
<h4 id="➰-옵션-메뉴에서-특정-옵션을-선택했을-때-실행시켜주는-메소드-추가---onoptionsitemselected">➰ 옵션 메뉴에서 특정 옵션을 선택했을 때 실행시켜주는 메소드 추가 - onOptionsItemSelected</h4>
<h4 id="➰-oncreatoptionsmenu-메소드-밖에-커서-위치-후">➰ onCreatOptionsMenu 메소드 밖에!! 커서 위치 후</h4>
<h4 id="➰-code--override-methods--androidappacticity---onoptionsitemselected-선택">➰ Code--&gt;Override Methods--&gt;Android.app.Acticity--&gt; onOptionsItemSelected 선택</h4>
<pre><code class="language-java">@Override
    public boolean onOptionsItemSelected(@NonNull MenuItem item) {
        return super.onOptionsItemSelected(item);
    }</code></pre>
<h4 id="➰-linearlayout-base-선언해주기-span-style-colorredoncreat-메소드-전에-써줘야-아래-메소드에서도-쓸-수-있음-캐스팅은-oncreat안에span">➰ LinearLayout base 선언해주기. <span style= "color:red">onCreat 메소드 전에!! 써줘야 아래 메소드에서도 쓸 수 있음. 캐스팅은 onCreat안에.</span></h4>
<h4 id="➰-위와-마찬가지로-return-true-아래로-끌어내려-써주기">➰ 위와 마찬가지로 return true; 아래로 끌어내려 써주기</h4>
<pre><code class="language-java">
package com.cookandroid.w10_menu;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.LinearLayout;

public class MainActivity extends AppCompatActivity {

    LinearLayout base;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        base = (LinearLayout) findViewById(R.id.base);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        super.onCreateOptionsMenu(menu);
        MenuInflater m = getMenuInflater();
        m.inflate(R.menu.menu1, menu);

        return true;
    }

    @Override
    public boolean onOptionsItemSelected(@NonNull MenuItem item) {
        super.onOptionsItemSelected(item);

        return true;
    }
}
</code></pre>
<h1 id="🟢-switch-문으로-item-선택하기-🟢">🟢 switch 문으로 item 선택하기 🟢</h1>
<pre><code class="language-java">package com.cookandroid.w10_menu;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;

import android.graphics.Color;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.LinearLayout;

public class MainActivity extends AppCompatActivity {

    LinearLayout base;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        base = (LinearLayout) findViewById(R.id.base);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        super.onCreateOptionsMenu(menu);
        MenuInflater m = getMenuInflater();
        m.inflate(R.menu.menu1, menu);

        return true;
    }

    @Override
    public boolean onOptionsItemSelected(@NonNull MenuItem item) {
        super.onOptionsItemSelected(item);

        switch(item.getItemId()){
            case R.id.red:
                base.setBackgroundColor(Color.RED);
                break;
            case R.id.blue:
                base.setBackgroundColor(Color.BLUE);
                break;
            case R.id.yellow:
                base.setBackgroundColor(Color.YELLOW);
                break;
            case R.id.green:
                base.setBackgroundColor(Color.GREEN);
                break;
        }

        return true;
    }
}
</code></pre>
<h2 id="switch-다시-해바바-여기-추가">switch 다시 해바바. 여기 추가</h2>
<pre><code class="language-java">@Override
    public boolean onOptionsItemSelected(@NonNull MenuItem item) {
        super.onOptionsItemSelected(item);

        return true;
    }</code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[[자바문법]]]></title>
            <link>https://velog.io/@may-verde/%EC%9E%90%EB%B0%94%EB%AC%B8%EB%B2%95</link>
            <guid>https://velog.io/@may-verde/%EC%9E%90%EB%B0%94%EB%AC%B8%EB%B2%95</guid>
            <pubDate>Thu, 03 Jun 2021 12:53:11 GMT</pubDate>
            <description><![CDATA[<span style="color:SteelBlue"> 
  <h1> 🐬Integer.parseInt와 String.valueOf </h1>
</span>

<h4 id="integerparseint--string문자열--int정수형-변환">Integer.parseInt : string(문자열)--&gt;int(정수형) 변환.</h4>
<h4 id="stringvalueof--int정수형--string문자열">String.valueOf : int(정수형)--&gt;string(문자열)</h4>
<p><img src="https://images.velog.io/images/may-verde/post/bafd9d5e-a99d-4e03-a72c-57925cbe2f99/image.png" alt=""></p>
<span style="color:Tomato"> 
  <h1> 🦄 Random </h1>
</span>

<pre><code>bound : 0~[내가 지정한 숫자 하나 전까지]
--&gt;ex. bound:6 --&gt; 0~5</code></pre><p><img src="https://images.velog.io/images/may-verde/post/f9eff46a-25c6-4acd-be60-26d130822eac/image.png" alt=""></p>
<span style="color:Thistle"> 
  <h1> 🚀 if/string 조건문 </h1>
</span>

<h4 id="boolean-타입-선언하고">boolean 타입 선언하고</h4>
<ol>
<li>string으로 표현하기<pre><code></code></pre></li>
</ol>
<p>String str;</p>
<p>//str = (조건) ? &quot;(조건이 참일 때)&quot; : &quot;(조건이 거짓일 때)&quot;
str = isMarried ? &quot;결혼 했다&quot; : &quot;결혼 안 했다&quot;;</p>
<pre><code>![](https://images.velog.io/images/may-verde/post/4de4dcf5-7403-4b2e-a5f6-118fad183879/image.png)

2. if로 표현하기

```java
조건이 두 개 일때

1. isMarried
2. isMan

//1이고 2일때
if (isMarried &amp;&amp; isMan)

//1또는 2일때
if (isMarried || isMan)

//1도 아니고 2도 아닐 때 (부정연산자)
if (!isMarried &amp;&amp; !isMan)</code></pre><p><img src="https://images.velog.io/images/may-verde/post/a3705e6a-ae7c-4de6-adea-5f633bed584b/image.png" alt=""></p>
<span style="color:YellowGreen"> 
  <h1> 🐲 switch 조건문 </h1>
</span>

<h4 id="boolean-타입은-switch-안됨">boolean 타입은 switch 안됨.</h4>
<h4 id="switch-case-break-default-한몸">switch, case, break, default 한몸</h4>
<p><img src="https://images.velog.io/images/may-verde/post/0089ae88-614b-4676-a6a1-108e3de54462/image.png" alt=""></p>
<span style="color:Teal"> 
  <h1> 🐢 for/while/do-while 반복문 </h1>
</span>

<pre><code class="language-java">0~9 출력하는 코드

//for 반복문
//int i 초기화, i 범위 설정, 변화 설정
for(int i = 0; i&lt;10; i++;){
    System.out.println(i);
    }

//while 반복문
int i = 0;
while(i&lt;10){
    System.out.println(i);
    i++;
    }

//do-while 반복문
int i = 0;
do{
    System.out.println(i);
    i++;
   } while (i&lt;10);</code></pre>
<p><img src="https://images.velog.io/images/may-verde/post/4b140a65-cceb-421a-97d6-71f7b0a3281f/image.png" alt=""></p>
<h4 id="반복하는데-6까지만-출력하고-싶을-때---for문-안에-if문과-break활용">반복하는데 6까지만 출력하고 싶을 때 - for문 안에 if문과 break활용</h4>
<p><img src="https://images.velog.io/images/may-verde/post/b7e77a8b-5ab8-4783-868e-82cd2a1ce3da/image.png" alt=""></p>
<h4 id="6만-출력하지-않기---for문-안에-if문과-continue-활용">6만 출력하지 않기 - for문 안에 if문과 continue 활용</h4>
<p><img src="https://images.velog.io/images/may-verde/post/dc744aa8-0769-4f4e-9e3c-fa12ec1e4f6c/image.png" alt=""></p>
<span style="color:PaleVioletRed"> 
  <h1> 🍱 배열 </h1>
</span>

<h3 id="배열은-똑같은-타입의-변수를-여러-개-가져야-되는-경우에-유용함">배열은 똑같은 타입의 변수를 여러 개 가져야 되는 경우에 유용함.</h3>
<pre><code class="language-java">
//배열 선언
int[] = score;

//초기화 -- &#39;new&#39; 키워드, [배열 개수]
//--&gt; 5개의 Integer 배열을 선언하게 됨.
score = new int[5];

//위 두 단계를 한번에 (선언과 초기화)
int[] score = new int [5];

//배열의 길이 구하기
int count = score.length;
System.out.println(count);
--&gt; 결과 : 5

//배열의 인덱스 값 선언하고 불러내기
//score 배열의 0번째 칸을 10으로 초기화
//초기화하지 않은 칸은 기본적으로 0으로 되어있음
score[0] = 10;
System.out.println(score[0]);
--&gt; 결과 : 10</code></pre>
<h4 id="아래와-같이-이렇게-하나하나-초기화-하는-것은-비효율적이니까">(아래와 같이) 이렇게 하나하나 초기화 하는 것은 비효율적이니까</h4>
<p><img src="https://images.velog.io/images/may-verde/post/e6416a0b-dab5-4089-ba48-b96feb72ac74/image.png" alt=""></p>
<h4 id="중괄호로-한번에-초기화-해주기">중괄호로 한번에 초기화 해주기</h4>
<p><img src="https://images.velog.io/images/may-verde/post/099c0fb5-caf8-48a8-8d7b-3020bc83be72/image.png" alt=""><img src="https://images.velog.io/images/may-verde/post/e26e458d-21d9-4f1f-b6c0-76aca7fd7119/image.png" alt=""></p>
<h4 id="배열의-길이가-길-경우--뒤쪽-인덱스를-불러올-때는-span-style--colorred배열명배열명length-1span">배열의 길이가 길 경우 : 뒤쪽 인덱스를 불러올 때는 <span style = "color:red">(배열명[배열명.length-1])<span></h4>
<p><img src="https://images.velog.io/images/may-verde/post/70444ec3-c11c-4a48-ad3a-becef3b970ac/image.png" alt=""></p>
<span style="color:PaleTurquoise"> 
  <h1> 🧊 숫자 더하기 </h1>
</span>

<h4 id="세-번째-int-numbers의-경우-정해진-숫자까지의-합을-구하는-것이고-이렇게-했을-때-배열로-들어가기-때문에-length로-접근2500">세 번째 (int ...numbers)의 경우 정해진 숫자까지의 합을 구하는 것이고 이렇게 했을 때 배열로 들어가기 때문에 length로 접근(25:00)</h4>
<p>  <img src="https://images.velog.io/images/may-verde/post/60525cc7-32c9-4f83-97b7-ee47086e55fc/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[안드로이드 스튜디오] style.xml 연결하기]]></title>
            <link>https://velog.io/@may-verde/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%EC%8A%A4%ED%8A%9C%EB%94%94%EC%98%A4-style.xml-%EC%97%B0%EA%B2%B0%ED%95%98%EA%B8%B0</link>
            <guid>https://velog.io/@may-verde/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%EC%8A%A4%ED%8A%9C%EB%94%94%EC%98%A4-style.xml-%EC%97%B0%EA%B2%B0%ED%95%98%EA%B8%B0</guid>
            <pubDate>Tue, 01 Jun 2021 14:06:48 GMT</pubDate>
            <description><![CDATA[<p>res --&gt; values --&gt; 마우스 우클릭 --&gt; &quot;Values Resource File&quot; --&gt; st(yle).xml 파일 생성</p>
<h4 id="아래와-같은-식으로-작성-한번에-적용하고-싶은-속성을-item-name-뒤에-쓰기">아래와 같은 식으로 작성, 한번에 적용하고 싶은 속성을 item name 뒤에 쓰기</h4>
<p><img src="https://images.velog.io/images/may-verde/post/d189f46f-5e62-43d0-903c-173b58a439bb/image.png" alt=""></p>
<h4 id="activity_mainxml에-다음과-같이-style-불러와줌">activity_main.xml에 다음과 같이 style 불러와줌</h4>
<pre><code>style = &quot;@style/[style.xml에서 설정한 스타일 이름]&quot;</code></pre><p><img src="https://images.velog.io/images/may-verde/post/0f42bad1-6b1e-471f-a928-c51d8ad3ae2d/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[TableLayout 속성]]></title>
            <link>https://velog.io/@may-verde/TableLayout-%EC%86%8D%EC%84%B1</link>
            <guid>https://velog.io/@may-verde/TableLayout-%EC%86%8D%EC%84%B1</guid>
            <pubDate>Tue, 01 Jun 2021 12:19:31 GMT</pubDate>
            <description><![CDATA[<h3 id="stretchcolumns--span-style--color-darkmagentanspan">stretchColumns = <span style = "color: DarkMagenta">&quot;N&quot;</span></h3>
<p>--&gt; N열의 폭을 늘려라</p>
<h3 id="stretchcolumns--span-style--color-darkorangespan">stretchColumns = <span style = "color: DarkOrange">&quot;*&quot;</span></h3>
<p>--&gt; 모든 열의 폭을 화면 너비에 맞춰 동일하게 늘려라</p>
<h3 id="layout_columns--1">layout_columns = &quot;1&quot;</h3>
<p>--&gt; 왼쪽부터 0,1,2... --&gt; 1번째 칸에 해당 칸을 두어라</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Git] fatal: The remote end hung up unexpectedly]]></title>
            <link>https://velog.io/@may-verde/Git-fatal-The-remote-end-hung-up-unexpectedly</link>
            <guid>https://velog.io/@may-verde/Git-fatal-The-remote-end-hung-up-unexpectedly</guid>
            <pubDate>Wed, 19 May 2021 10:54:36 GMT</pubDate>
            <description><![CDATA[<pre><code>git config --global http.postBuffer 20971520
git push [origin] [main]

</code></pre><p><a href="https://confluence.atlassian.com/bitbucketserverkb/git-push-fails-fatal-the-remote-end-hung-up-unexpectedly-779171796.html">https://confluence.atlassian.com/bitbucketserverkb/git-push-fails-fatal-the-remote-end-hung-up-unexpectedly-779171796.html</a></p>
<p><a href="https://crmn.tistory.com/58">https://crmn.tistory.com/58</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Git] 깃허브에 로컬 폴더 연결하기(clone)]]></title>
            <link>https://velog.io/@may-verde/%EA%B9%83%ED%97%88%EB%B8%8C%EC%97%90-%EB%A1%9C%EC%BB%AC-%ED%8F%B4%EB%8D%94-%EC%97%B0%EA%B2%B0%ED%95%98%EA%B8%B0clone</link>
            <guid>https://velog.io/@may-verde/%EA%B9%83%ED%97%88%EB%B8%8C%EC%97%90-%EB%A1%9C%EC%BB%AC-%ED%8F%B4%EB%8D%94-%EC%97%B0%EA%B2%B0%ED%95%98%EA%B8%B0clone</guid>
            <pubDate>Wed, 19 May 2021 07:40:51 GMT</pubDate>
            <description><![CDATA[<h3 id="깃-위키-참고">깃 위키 참고!</h3>
<p><a href="https://github.com/LIKELION-9TH/wiki/blob/main/git_tutorial.md">https://github.com/LIKELION-9TH/wiki/blob/main/git_tutorial.md</a></p>
<p><del><strong>1. PC(로컬)에 새로운 폴더 생성</strong></del>(안해도 됨)
<img src="https://images.velog.io/images/may-verde/post/f12b1ec2-3975-4dda-a7cd-b6d841db7fa0/image.png" alt=""></p>
<p><strong>2. 마우스 오른쪽 - Git Bash Here
** mac은 terminal에서 열기</strong>
<img src="https://images.velog.io/images/may-verde/post/cfbe1a4f-42f6-4b0a-9621-b19be8e6a59e/image.png" alt=""></p>
<p><strong>3. 깃 계정정보 등록</strong></p>
<pre><code>git config --global user.name &quot;내 이름&quot;
git config --global user.email &quot;내 메일 주소&quot; </code></pre><p><img src="https://images.velog.io/images/may-verde/post/f3fc47df-7fca-4c63-9ba3-70eefe624b3c/image.png" alt=""></p>
<p><strong>4. Github에서 원격 저장소 생성</strong>
<img src="https://images.velog.io/images/may-verde/post/518569d9-0597-4cbf-8880-da708a8dc356/image.png" alt=""></p>
<p><strong>5. 레포지토리 name, description, public, README 설정</strong></p>
<p><img src="https://images.velog.io/images/may-verde/post/bfcf8fad-b990-417e-b81f-5a5ca8464a83/image.png" alt=""></p>
<p><strong>6. Github 레포지토리 링크 가져오기</strong>
<img src="https://images.velog.io/images/may-verde/post/5437c2d6-bdfb-48c6-9e02-4286f43f5183/image.png" alt=""></p>
<p><strong>7. 레포지토리 clone 하기</strong></p>
<h4 id="git-clone-하면-remote-add-필요-없음">git clone 하면 remote add 필요 없음!!!!</h4>
<p><img src="https://images.velog.io/images/may-verde/post/90f66e9e-689d-489f-bfa5-efbbde1fa417/image.png" alt="">
--&gt; 로컬 폴더 안에 깃허브(원격)의 레포지토리가 들어옴
<img src="https://images.velog.io/images/may-verde/post/2152d024-e8b5-4a26-b4b0-4a53ddb27cd5/image.png" alt="">
--&gt;레포지토리 클릭 --&gt; .git 폴더 생성확인 (by 숨긴항목 표시)
<img src="https://images.velog.io/images/may-verde/post/4eec2be3-69e6-4d78-b287-a52b0a99531b/image.png" alt=""></p>
<p>*<em>8. 레포지토리로 들어오기 *</em></p>
<pre><code>cd (레포지토리명)</code></pre><p><img src="https://images.velog.io/images/may-verde/post/a6d5c46f-41ca-4b16-90b2-6c3af6cbfe92/image.png" alt=""></p>
<p><strong>9. 현재 깃허브 레포지토리를 &#39;origin&#39;이라는 이름의 원격 저장소로 설정</strong></p>
<h4 id="git-clone-하면-remote-add-필요-없음-1">git clone 하면 remote add 필요 없음!!!!</h4>
<pre><code>git remote add [origin] [깃허브주소]

매번 URL을 복붙하긴 힘들다 
--&gt; 그래서 origin 이라는 별명을 지어준거고, 
원격의 깃허브랑 지금 본인의 개발환경이랑 연결해주는 명령어</code></pre><p><img src="https://images.velog.io/images/may-verde/post/feb950c0-7f80-4846-92de-9949a3e76892/image.png" alt=""></p>
<p><strong>10. 중간 확인</strong></p>
<pre><code>git remote</code></pre><p><img src="https://images.velog.io/images/may-verde/post/6f5bf8a7-cedc-48b1-85cc-01806def66c1/image.png" alt=""></p>
<p><strong>11. 레포지토리에 새로운 파일 삽입 후 확인</strong></p>
<ul>
<li>ade.jpg 넣어봄
<img src="https://images.velog.io/images/may-verde/post/3c33a088-670d-447d-b46a-a8d345b7bc49/image.png" alt=""></li>
</ul>
<pre><code>git add .
git status</code></pre><p><img src="https://images.velog.io/images/may-verde/post/4590b9ca-1498-484d-bef9-dc16e1a9fc48/image.png" alt=""></p>
<p><strong>12. 커밋메시지 작성 후 push하여 원격에 올리기</strong></p>
<pre><code>git commit -m &quot;커밋메시지&quot;
git push [origin] [브랜치명]</code></pre><p><img src="https://images.velog.io/images/may-verde/post/147b38c1-3a62-49f1-8298-7511e71e2d3e/image.png" alt=""></p>
<ul>
<li>깃허브에 가서 새로고침 후 변경사항 확인(추가됨!)
<img src="https://images.velog.io/images/may-verde/post/601099d5-4186-47ad-8b1f-1ad70092549d/image.png" alt=""></li>
</ul>
<p><strong>13. 다른 파일 올려보자</strong></p>
<ul>
<li>아래와 같은 내용의 new.html을 생성하고 ParkYuJin 레포지토리에 저장
<img src="https://images.velog.io/images/may-verde/post/ef9183ca-a0ac-4e46-9b0c-a783a137070f/image.png" alt=""></li>
<li>변경사항 확인
<img src="https://images.velog.io/images/may-verde/post/6ceff571-0c5c-4c49-8389-4f0cfcb3a871/image.png" alt=""></li>
<li>커밋메시지 작성과 원격에 푸쉬
<img src="https://images.velog.io/images/may-verde/post/41beed60-7c18-49f0-ae1b-20220efbc791/image.png" alt=""></li>
<li>Github에서 새로고침
<img src="https://images.velog.io/images/may-verde/post/b815763e-a1b7-4674-b377-9bae388035d8/image.png" alt=""></li>
<li>파일 클릭하여 내용 확인 (잘 올라갔군)
<img src="https://images.velog.io/images/may-verde/post/0e92804a-f7bb-4890-903b-d0810cd968ab/image.png" alt=""></li>
</ul>
<p><strong>14. 파일 내용 변경해보기</strong></p>
<ul>
<li>아래와 같이 파일 내용 변경(2행)
<img src="https://images.velog.io/images/may-verde/post/c314a722-8184-4c96-a497-4f9f4290a568/image.png" alt=""></li>
<li>git add. 와 git status로 상태 알아보기
&quot;modified&quot; 변경되었다는 메시지 확인
<img src="https://images.velog.io/images/may-verde/post/f207b4d6-966b-4a1e-b229-f9a0626106dc/image.png" alt=""></li>
<li>커밋메시지 작성과 원격에 푸쉬
<img src="https://images.velog.io/images/may-verde/post/2fc8538d-4990-452e-801d-43e5a410750c/image.png" alt=""></li>
<li>Github 새로고침 &lt;&lt; 바뀌었음!!
<img src="https://images.velog.io/images/may-verde/post/36826704-ede3-4ddb-812c-716d4caaeddb/image.png" alt=""></li>
</ul>
<p><del>초기작업 끝</del></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Git] Git 명령어 (터미널 사용)]]></title>
            <link>https://velog.io/@may-verde/gitterminal</link>
            <guid>https://velog.io/@may-verde/gitterminal</guid>
            <pubDate>Wed, 19 May 2021 06:01:40 GMT</pubDate>
            <description><![CDATA[<p>(참고영상) - 가장 쉬운 Git 강좌 - (하) Github편 by 얄팍한 코딩사전
<a href="https://www.youtube.com/watch?v=GaKjTjwcKQo">링크텍스트</a></p>
<h2 id="git-add--a">git add -A</h2>
<p>--&gt; 깃의 관리 하에 모든 파일을 두기</p>
<h2 id="git-commit--m-커밋메시지">git commit -m &quot;커밋메시지&quot;</h2>
<p>--&gt; 수정 사항 커밋하기</p>
<h2 id="git-push--u-origin-master">git push (-u?) origin master</h2>
<p>--&gt; 푸시하기</p>
<h2 id="git-remote-add-origin-깃허브-주소">git remote add origin &quot;깃허브 주소&quot;</h2>
<p>--&gt; 현재 github 레파지토리를 &#39;origin&#39; 이라는 이름의 원격 저장소로 설정하겠다.
** &#39;origin&#39;이라는 이름은 바꿔도 되지만, Git 초기화 시 기본 브랜치명이 master인 것처럼 흔히 기본값으로 사용되는 이름.</p>
<h2 id="git-push--u-origin-master-1">git push -u origin master</h2>
<p>--&gt; 폴더의 현 브랜치에 커밋된 내용들을 &#39;origin&#39;이라는 원격 레파지토리의 &#39;master&#39;라는 이름의 브랜치에 올리겠다. </p>
<p>--&gt; 깃허브 새로고침해보면 로컬로부터 푸시한 파일들 올라와있음 확인 가능. 각 파일들이 어떤 커밋에서 마지막으로 생성/변경되었는지 확인 가능. </p>
<h2 id="git-remote">git remote</h2>
<p>--&gt; 추가한 원격 레파지토리 이름 나옴.</p>
<blockquote>
<p>.gitignore
--&gt; github에 올릴 필요가 없거나 그래서는 안되는 파일들. 
--&gt; 프로젝트 폴더 바로 안쪽 최상위 공간에 gitignore 파일을 생성 --&gt; 자동으로 숨김파일로 지정됨.</p>
</blockquote>
<p>숨길 파일 지정(ex.secret animal 이란 파일 이름)--&gt; gitignore 안에 숨길 파일 이름 써주기 </p>
<h2 id="git-status">git status</h2>
<p>--&gt; 현재 git의 관리 하에 있는 파일들의 상태 보기 </p>
<h2 id="git-clone-깃-레파지토리-주소">git clone &quot;깃 레파지토리 주소&quot;</h2>
<p>--&gt; 새로운 폴더(방금 클론해온 레파지토리명)가 생김
--&gt; vscode에서 해왔다면 &#39;cd 폴더명&#39; 입력해 들어가서 작업</p>
<h2 id="git-log">git log</h2>
<p>--&gt; 프로젝트 내역 확인</p>
<h2 id="git-fetch----git-status">git fetch --&gt; git status</h2>
<p>--&gt; 깃허브에서 다운받아야 할 사항이 있는지 확인
Ex. &quot;Your branch is behind &#39;origin/master&#39; by 1 commit, and can be fast-forwarded&quot; --&gt; 이 브랜치가 원격 origin의 마스터에 커밋 하나가 뒤쳐져 있다. </p>
<h2 id="git-pull-원격명-브랜치명">git pull (원격명) (브랜치명)</h2>
<p>--&gt; 깃허브에서 다운받아야 할 것 로컬로 다운받기</p>
<h2 id="git-branch-브랜치명">git branch (브랜치명)</h2>
<p>--&gt; 브랜치 만들기</p>
<h2 id="git-checkout-브랜치명">git checkout (브랜치명)</h2>
<p>--&gt; 해당 브랜치로 넘어가기 </p>
<h2 id="git-checkout--b-브랜치명">git checkout -b (브랜치명)</h2>
<p>--&gt; 브랜치 만든 다음 넘어가기를 한번에!</p>
<h2 id="git-push-origin-브랜치명">git push origin (브랜치명)</h2>
<p>--&gt; 브랜치를 원격에 올리기 --&gt; 깃허브 새로고침 후 브랜치 클릭 --&gt; 추가됨</p>
<h2 id="git-branch">git branch</h2>
<p>--&gt; 로컬에서의 브랜치 목록 보기</p>
<h2 id="git-branch--a">git branch -a</h2>
<p>--&gt; 로컬과 원격 모두의 브랜치 보기</p>
<h2 id="git-fetch">git fetch</h2>
<p>--&gt; github에서의 소식 알아보기</p>
<h2 id="git-checkout--b-브랜치명-origin브랜치명">git checkout -b (브랜치명) origin/(브랜치명)</h2>
<p>--&gt; 로컬에 (브랜치명) 으로 브랜치를 만들어서 origin 이라는 원격의 (브랜치명)의 내용을 받아오고 그 평행우주로 체크아웃 한다.
--&gt; 파일 상태가 로컬에도 반영됨--&gt; git branch로 로컬에서 브랜치 목록 확인으로도 알 수 있음</p>
<blockquote>
<p>서로 다른 사용자가 같은 파일을 수정하고 git push를 하려고 하면 에러 메시지 --&gt; 일단 pull 을 해서 현 상태를 업데이트 시킨 후 충돌을 해결하고 push 해야 함 </p>
</blockquote>
<h2 id="git-commit">git commit</h2>
<p>--&gt; :wq &#39;이 메시지 그대로 저장할게&#39;</p>
<h2 id="git-branch--d-브랜치명">git branch -D (브랜치명)</h2>
<p>--&gt; 로컬 브랜치 삭제, 제거하기 </p>
<h2 id="git-push--d-원격명-origin-브랜치명">git push -d (원격명 origin) (브랜치명)</h2>
<p>--&gt; 원격의 브랜치 삭제, 제거하기</p>
]]></description>
        </item>
    </channel>
</rss>