Android36 [Android] fragment 사용하여 탭 만들기 fragment는 화면을 보여준다. 먼저 메인 레이아웃을 RelativeLayout으로 바꾼다. 디자인에서 BottomNavigationView를 골라 넣는다. # layout height를 wrap_content로 설정한다. # layout_alignParentbottom을 true로 설정하여 NavigationView를 밑으로 보낸다. # id를 bottomNavigationView로 설정한다. 왼쪽의 Resource Manager를 열고 Navigation을 선택 후 추가버튼을 누른다. # 그럼 Navigation Resource File이 나오는데 그것을 눌러 생성한다. 경고창이 나오면 OK를 눌러 넘어가자 # 간혹 위의 경고창이 뜨지않고 계속 loading중으로 되어 design기능을 사용하지 .. 2022. 7. 27. [Android] Multipart를 이용한 사진파일 포스트 API Retrofit을 이용하여 사진과 글을 전송하는 API를 이용하려고 한다. 사진은 용량이 커서 네트워크를 통해 걸리는 시간이 많기 때문에 Multipart를 이용해야 한다. 먼저 포스팅하는 API를 인터페이스로 만든다. public interface PostingApi { @Multipart @POST("/posting") Call addPosting(@Header("Authorization") String token, @Part MultipartBody.Part photo, @Part("content")RequestBody content); } # Multipart를 사용한다. # Call로 나타낼 것을 클래스 단위로 불러온다. # 유저의 억세스 토큰을 헤드로 넣을것이다. # 사진파일은 Multipar.. 2022. 7. 26. [Android] Retrofit2 설정, API호출 Retrofit2 매뉴얼: https://square.github.io/retrofit/ Retrofit A type-safe HTTP client for Android and Java square.github.io gradle 설정 implementation 'com.squareup.retrofit2:retrofit:2.9.0' implementation 'com.squareup.retrofit2:converter-gson:2.9.0' implementation("com.squareup.okhttp3:logging-interceptor:4.9.0") 메인에서 쉐어드 프리퍼런스에 억세스 토큰이 있는지 확인 없으면 회원가입 엑티비티로 회원가입을 하면 저장소에 억세스토큰 저장 회원가입 종료하면 메인으로 돌아.. 2022. 7. 21. [Android] 카메라 기능: string-array, provider 카메라 기능을 사용하기 위해서는 먼저 gradle에 코드를 추가해야 한다. implementation 'commons-io:commons-io:2.4' 그 후 AndroidManifest에서 저장소, 카메라 권한과 provider 설정을해야한다. 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { Toast.makeText(MainActivity.this, "권한 허가 되었음", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(MainActivity.this, "아직 승인하지 않았음", Toast.LENGTH_SHORT).show(); } break; } case 500: { if (grantResult.. 2022. 7. 21. [Android] 글라이드(glide) 이용한 사진 가져오기 글라이드는 안드로이드의 아주 효율적인 오픈소스 이미지 로딩 프레임이다. 글라이드 웹페이지: https://github.com/bumptech/glide GitHub - bumptech/glide: An image loading and caching library for Android focused on smooth scrolling An image loading and caching library for Android focused on smooth scrolling - GitHub - bumptech/glide: An image loading and caching library for Android focused on smooth scrolling github.com 글라이드를 사용하기 위해 Gradl.. 2022. 7. 20. [Android] 네트워크에서 데이터 가져오기 및 수정 (작성중) 어뎁터 public class NetworkAdapter extends RecyclerView.Adapter { Context context; List networkList; public NetworkAdapter(@NonNull Context context, List networkList) { this.context = context; this.networkList = networkList; } @NonNull @Override public NetworkAdapter.Viewholder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()).inflate.. 2022. 7. 19. [Android] 엑션바 활용과 메뉴 만들기: getSupportActionBar, onSupportNavigateUp, onCreateOptionsMenu, onOptionsItemSelected 엑션바의 타이틀을 각각의 엑티비티마다 세팅해줄수 있다. 엑션바를 편집하려면 onCreate에 getSupportActionBar를 사용해야 한다. getSupportActionBar().setTitle("직원정보"); # 연봉정보라는 타이틀을 엑션바에 넣었다. 그 후 Show context Actions를 클릭한 뒤 Extract string resource를 선택하여 스트링 리소스를 만든다. 리소스네임을 설정하여 다양한 상황에 대처할수 있도록 만든다. 위의 과정을 거치면 자동으로 변환된다. getSupportActionBar().setTitle(R.string.Employee_Title); 엑션바의 타이틀이 바뀐것을 확인할수있다. 이제 엑션바에 백버튼 기능을 넣어보자. 먼저 엑션바에 백버튼을 세팅하기 .. 2022. 7. 19. [Android] EditText에서 글자를 바꿀 때 마다 기능 실행: TextWatcher, addTextChangedListener 먼저 데이터 베이스의 정보를 검색하는 함수를 만들기 위해 DatabaseHandler에서 작업한다. // 메모 검색하는 함수 public ArrayList searchMemo (String keyword){ SQLiteDatabase db = this.getReadableDatabase(); Cursor cursor = db.rawQuery("select * from memo where title like '%"+keyword+"%' or content like '%"+keyword+"%'",null); ArrayList memoList = new ArrayList(); if(cursor.moveToFirst()){ do{ Memo memo = new Memo(cursor.getInt(0),cursor... 2022. 7. 18. 이전 1 2 3 4 5 다음