안드로이드 스튜디오 라이브러리를 찾아서 추가

 

 

 

 

 

 

 

우선 라이브러리 등을 확인하려면 built.gradle( Module: app) -> dependencies {} 항목들을 보면 알 수 있다.

 

이 곳에 직접 라이브러리를 입력하여서 추가할 수도 있지만 보통 예전의 작성된 글이나 코드들을 참조하여 추가하기 때문에 버전 같은 것이 다를 경우가 많다.

 

그래서 직접 입력하기보다는 찾아서 추가해주는 것이 좋다.

 

 

 

 

 

라이브러리를 찾아서 추가하기 위해서는 우선

 

<File> --> <Project Structure...>로 들어간다.

 

단축키로는 Ctrl + Alt + Shift + S 이므로 각자 편한 방법을 사용하여 실행하면 된다.

 

 

 

 

 

실행되었다면 이제는

 

<app>의 Dependencies 탭으로 들어간다.

 

 

 

 

 

그러면 오른쪽에 있는 녹색 +를 클릭하여 라이브러리를 추가하기 위해서 Library를 클릭해 준다.

 

 

 

 

 

 

 

그러면 검색창이 뜨고 일부만 검색해도 그 단어를 포함하고 있는 것들을 다 보여주기 때문에 이곳에서 추가하기 원하는 라이브러리를 찾아서 추가해주면 된다.

 

 

 

 위에서도 말했듯이 기존의 작성된 글을 참조하는 경우가 많으므로 추가하는 라이브러리의 버전이 다를 경우가 종종 발생한다.

 

 그러므로 라이브러리를 추가할 때는 직접 입력하기보다는 이렇게 찾아서 추가해주는 것이 좋다.

 

 

 

 

안드로이드(자바)에서 년, 월, 일, 시간, 분, 초를 구해서 변수에 저장

 

 

 

실행 결과

 

 

 

 

 

 

 

/* 레이아웃 */

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="vertical"
    tools:context=".MainActivity">


    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="날짜 받기"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</LinearLayout>

 

버튼을 클릭하면 텍스트뷰에 날짜와 시간을 표시하도록 한다.

 

 

 

/* 자바 코드 */

package com.tistory.godog.test3;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import java.util.Calendar;

public class MainActivity extends AppCompatActivity {

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

        textView = findViewById(R.id.textView);
        Button button = findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                getDT();
            }
        });
    }

    public void getDT() {
        Calendar cal = Calendar.getInstance();
        int y=0, m=0, d=0, h=0, mi=0, s=0;

        y = cal.get(Calendar.YEAR);
        m = cal.get(Calendar.MONTH) +1;
        d = cal.get(Calendar.DAY_OF_MONTH);
        h = cal.get(Calendar.HOUR);
        mi = cal.get(Calendar.MINUTE);
        s = cal.get(Calendar.SECOND);

        textView.setText(y+"/"+m+"/"+d+" "+h+":"+mi+":"+s);
    }
}

 

- Calendar 클래스가 추상 클래스이여서 new로 인스턴스를 생성할 수 없다.

 

└> 이는 날짜와 시간을 계산하는 방법이 지역, 나라에 따라 다르기 때문이다. 그래서 getInstance() 메소드를 사용하면 운영체제에 설정되어 있는 시간을 기준으로 객체를 얻어온다.

 

 

 

- 월을 구할 때는 0~11에 값을 가지므로 우리가 사용하는 1~12 값의 월을 얻기 위해서는 +1을 해주어야 한다.

 

 

안드로이드 날짜/시간 다이로그 실행하여서 날짜와 시간을 변수에 저장

 

 

실행 화면

설정한 날짜와 시간을 "날짜/시간 확인"버튼을 누르면 토스트 메시지로 확인할 수 있도록 만들었다.

 

 

 

 

/* 레이아웃 */

메인 / 달력 / 시계


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="달력" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="시간" />

    <Button
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="날짜/시간 확인" />


</LinearLayout>

- 달력 버튼을 클릭하면 달력 다이로그가 실행.

- 시간 버튼을 클릭하면 시간 다이로그가 실행.

- 날짜/시간 확인 버튼을 클릭하면 위 다이로그에서 저장한 날짜와 시간을 토스트 메시지로 보여준다.

 

 

 

/* 자바 코드 */


package com.tistory.godog.test2;

import android.app.DatePickerDialog;
import android.app.TimePickerDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.TimePicker;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    int y=0, m=0, d=0, h=0, mi=0;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button button = findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                showDate();
            }
        });

        Button button1 = findViewById(R.id.button2);
        button1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                showTime();
            }
        });
        Button button2 = findViewById(R.id.button3);
        button2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(getApplicationContext(), y+"."+m+"."+d+"\n"+h+":" + mi, Toast.LENGTH_SHORT).show();
            }
        });
    }

    void showDate() {
        DatePickerDialog datePickerDialog = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
            @Override
            public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
                y = year;
                m = month+1;
                d = dayOfMonth;

            }
        },2019, 1, 11);

        datePickerDialog.setMessage("메시지");
        datePickerDialog.show();
    }

    void showTime() {
        TimePickerDialog timePickerDialog = new TimePickerDialog(this, new TimePickerDialog.OnTimeSetListener() {
            @Override
            public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
                h = hourOfDay;
                mi = minute;

            }
        }, 21, 12, true);
        
        timePickerDialog.setMessage("메시지");
        timePickerDialog.show();
    }
}

 

- DatePickerDialog( Context , 이벤트 리스너, 년, 월, 일) : 여기서 년, 월, 일은 Date다이로그가 처음 보여주는 년, 월, 일이다. 

즉, 다이로그에 초기값 같은 것으로 오늘 날짜로 설정하고 싶다면 Calendar변수를 사용하여 설정해 주면 된다.

 

└> onDateSet 메소드에서 year, month, dayOfMonth를 미리 선언해둔 변수에 저장하여 다른 곳에서 사용할 수 있다.

 

└> 주의할점은 우리가 아는 월은 1~12지만 여기서는 0~11로 되어있기 때문에 초기값을 줄 때에도 값을 가져올 때에도 +1을 해야 생각했던 월의 값을 받을 수 있다. 실제로 위 코드에서 DateDialog의 월 초기값을 1로 주었지만 실행된 Dialog에서는 2월을 보여준다.

 

└> datePickerDialog.setMessage("메시지") 이곳에 메시지를 입력하면 다이로그 위에 보여준다. 인터페이스로서 이용하여도 되지만 생략하여도 무관하다.

 

 

 

- TimePickerDialog( Context, 이벤트 리스터, 시간, 분, 오전/오후 구분) : 여기서 시간과 분은 DatePickerDialog처럼 초기값을 주는 것이다. 마지막 인자로 오전/오후 구분이라고 하였는데 이를 true로 주었을 때는 0~24시간을 선택할 수 있는 뷰를 보여준다.

반대로 false를 주었을 때는 0~12시간만을 선택할 수 있으며, 따로 오전/오후를 선택할수 있는 버튼이 주어진다.

 

└> 마찬가지로 onTimeSet에서 hourOfDay, minute를 변수에 저장하여서 입력받은 시간과 분을 이용할 수 있다.

 

 

+ Recent posts