본문 바로가기

분류 전체보기277

[Android Studio] TabBar Fragment 사용하기 MainActivity public class MainActivity extends AppCompatActivity { // 아래 아이콘 나오는 영역 BottomNavigationView bottomNavigationView; // 각 프레그먼트를 멤버변수로 만든다. Fragment firstFragment; Fragment secondFragment; Fragment thirdFragment; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); SharedPreferences sp = getSharedPref.. 2024. 1. 10.
[Android Studio] TabBar 만들기 implementation("androidx.navigation:navigation-fragment:2.7.6") implementation("androidx.navigation:navigation-ui:2.7.6") 탭바를 만들기 위해 위 코드를 build.gradle.kts에 작성한다. activity_main.xml의 Code로 가서 레이아웃을 RelativeLayout로 바꾼 후 bottomNavigationView를 넣는다. 그 후 Code로 가서 bottomNavigationView를 위와 같이 설정한다. 왼쪽 Resource Manager 클릭 - Navigation 탭 이동 후 + 버튼 클릭해서 Resource File 생성한다. (my_nav) 생성 완료화면 위와 같이 res 폴더에 na.. 2024. 1. 9.
[React] axios 통신 중 mysql의 timestamp 타입 데이터 가져와서 한국 시간으로 변환하는 방법 아래는 원하는 데이터가 들어있는 mysql 테이블이다. createdAt 컬럼의 데이터들은 글로벌 표준시(UTC)이기 때문에 유저가 보기 좋게 한국 시간으로 바꿔야 한다. 변환 방법 // axios 통신중 부분 코드 .then((res) => { console.log(res.data.items); const userData = res.data.items.map(user => ({ userId: user.userId, userNickname: user.userNickname, userEmail: user.userEmail, postingId: user.postingId, imageUrl: user.imageUrl, content: user.content, createdAt: new Date(user.cre.. 2024. 1. 8.
[Android Studio] 글로벌 표준시(UTC)를 로컬의 시간으로 변경하기 DB에서 가져온 createdAt 컬럼의 데이터는 글로벌 표준시(UTC)로 되어 있기 때문에 아래 코드와 같이 로컬의 시간으로 변경해야 한다. SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss"); SimpleDateFormat df = new SimpleDateFormat("yyyy년MM월dd일 HH시mm분ss초"); sf.setTimeZone(TimeZone.getTimeZone("UTC")); df.setTimeZone(TimeZone.getDefault()); // 서버의 시간(글로벌 표준시)를 로컬의 시간으로 변환해야 한다. try { Date date = sf.parse(posting.createdAt); String loca.. 2024. 1. 8.
[Android Studio] Retrofit2 API 호출 중 form-data 처리 하는 방법 Retrofit2 라이브러리를 이용해 API를 호출할 때, Body에 json이 아닌 form-data로 데이터를 보내야 한다. 우선 api를 호출할 interface를 만들어준다. 위 포스트맨 캡쳐처럼 photo라는 파일 데이터와 content라는 텍스트를 보낼 것이다. // 포스팅 생성 API @Multipart // 용량이 크기 때문에 쪼개서 보낸다는 의미의 어노테이션 @POST("/posting") Call addPosting(@Header("Authorization") String token, @Part MultipartBody.Part photo, @Part("content")RequestBody content); @Multipart를 사용, 위 코드같이 세팅한다. 사용 코드 Retrofit .. 2024. 1. 8.
[Android Studio] 카메라, 앨범 사용하기 AndroidManifest에 manifest와 application 사이에 아래 권한들을 입력 xml 폴더 fileprovider 파일 생성 후 아래 코드 작성 다시 AndroidManifest에서 application과 activity 태그 사이에 아래 코드들 입력 bulid.gradle.kts의 dependencies 안에 필요 라이브러리인 아래 코드 입력 implementation("commons-io:commons-io:2.4") 메인액티비티 전체 코드 public class MainActivity extends AppCompatActivity { Button btnPhoto; ImageView imgPhoto; // 사진 파일 File photoFile; @Override protected v.. 2024. 1. 5.
[Android Studio] AlertDialog array로 사용하기 CameraApp 선택하세요. 카메라 실행 앨범에서 선택 values 폴더 - strings.xml 파일에 array를 만든 후에 private void showDialog() { AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); builder.setTitle(R.string.alert_title); builder.setItems(R.array.alert_photo, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { if (which == 0){ // 첫번째 항목 클릭 시 camera.. 2024. 1. 5.
[Android Studio] Retrofit2 라이브러리를 이용할 CRUD 기능 처리 API 인터페이스 예시 API를 처리할 인터페이스는 해당 API 레퍼런스를 확인하고 아래 코드처럼 만들어 주면 된다. + update와 delete처럼 해당 아이디값(숫자)를 가져오는 경우는 경로를 { } 처리한다. ex) /memo/3 -> /memo/{memoId} // 메모 생성 API @POST("/memo") Call addMemo(@Header("Authorization") String token, @Body Memo memo); // 내 메모리스트 가져오는 API @GET("/memo") Call getMemoList(@Header("Authorization") String token, @Query("offset") int offset, @Query("limit") int limit); // 메모 수정하는 API .. 2024. 1. 5.
[Android Studio] Retrofit2 이용할 때 페이징 처리 하는 방법 // 페이징 처리 recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) { super.onScrolled(recyclerView, dx, dy); // 현재 리사이클러뷰에 보이는 마지막 요소(카드뷰)의 인덱스 int lastPosition = ((LinearLayoutManager) recyclerView.getLayoutManager()).findLastVisibleItemPosition(); // 현재 리사이클러뷰에 보이는 요소의 총 개수 int totalCount = recyc.. 2024. 1. 5.
[Android Studio] Retrofit2 라이브러리를 이용해 RecyclerView 화면 처리하기 포스트맨에서 api 요청 시 필요한 것들을 확인한다. (httpmethod, url, 토큰 유무, 데이터 유무, 쿼리스트링 유무 등등) public interface MemoApi { // 메모 생성 API @POST("/memo") Call addMemo(@Header("Authorization") String token, @Body Memo memo); // 내 메모리스트 가져오는 API @GET("/memo") Call getMemoList(@Header("Authorization") String token, @Query("offset") int offset, @Query("limit") int limit); } 확인 후, api를 호출하기 위해 api 패키지 - MemoApi 인터페이스에서 함수를.. 2024. 1. 4.