본문 바로가기

Front-end/Android (안드로이드 앱 개발)52

Android Studio , Intent 로 객체 전달하기, Parcelable 세컨드 액티비티로 넘어갈때 인텐트로 값을 넘긴다. public class MainActivity extends AppCompatActivity { TextView text2; final int SECOND_ACTIVITY =1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); text2 = findViewById(R.id.textView); } public void btnClicked(View view) //메인A -> 2A { Intent intent = new Intent(this, SecondActiv.. 2020. 7. 28.
Android Studio , Thread & Handler (쓰레드와 핸들러), 오래걸리는 작업, 쓰레드 이용하여 화면에 뿌릴 때 public class MainActivity extends AppCompatActivity { TextView text1; TextView text2; boolean isRunning = false; //화면 처리용 핸들러 DisplayHandler handler; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); text1 = findViewById(R.id.textView); text2 = findViewById(R.id.textView2); isRunning = true; handler = new Di.. 2020. 7. 18.
Android studio (안드로이드 스튜디오) 구글 API 설정하기, google api https://cloud.google.com/docs/authentication/getting-started?hl=ko 인증 시작하기 | Google Cloud 이 문서에서는 Cloud API를 인증하는 권장 방법을 설명합니다. 인증은 클라이언트의 ID를 확인하는 프로세스를 의미합니다. 승인은 특정 리소스 집합에 대한 인증된 클라이언트의 권한을 확인하는 프로세스를 의미합니다. 즉, 인증은 누구인지를 확인하고 승인은 무엇을 할 수 있는지를 확인합니다. 인증에는 서비스 계정(특정 사용자가 아닌 GCP 프로젝트와 연결된 Google 계정)을 사용하는 것이 좋습니다. 서비스 계정은 사용자의 코드가 로컬, Compute cloud.google.com 2020. 3. 22.
Android studio (안드로이드 스튜디오) Authrization 위험권한 부여하기 permission Authrization 위험권한 부여하기 permission https://developer.android.com/guide/topics/security/permissions?hl=ko public void permissionCheck() { //권한 얻었는지 체크 if(ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA)!= PackageManager.PERMISSION_GRANTED){ //권한이 없다면 //권한을 설명 해줘야 할 필요가 있다면 if(ActivityCompat.shouldShowRequestPermissionRationale(this,Manifest.permission.CAMERA)){ //권한을 설명해준다. }els.. 2020. 3. 18.
Android studio (안드로이드 스튜디오) Network 통신, retrofit2, stetho , 이클립스 서버와 통신 Android studio (안드로이드 스튜디오) Network 통신, retrofit2, stetho 이 글은 이클립스 서버와의 통신을 다룬다. Retrofit은 안드로이드에서 서버와의 통신을 위한 Square사의 라이브러리 HTTP API를 Java 인터페이스로 전환한다. 서버와의 통신을 할 때 AsyncTask 를 사용하지만 속도가 느리다는 단점이 있다. 그렇기 때문에 성능적으로 더 좋은 Restrofit 을 사용하려고 한다. Retrofit A type-safe HTTP client for Android and Java square.github.io stetho 라이브러리는 페이스북에서 개발된 안드로이드 디버깅 툴이다. build.gradle (:app) retrofit implementation.. 2020. 3. 17.
Android studio (안드로이드 스튜디오) AsyncTask, Background 백그라운드 AsyncTask 안드로이드에서는 UI쓰레드를 정지 시켜 둘 수 없기 때문에, background 작업이 필요한 경우를 위해서 AsyncTask 지원 onPreExcute -background 작업이 시작하기 전에 호출 / 백그라운드 작업전 해야할 것 doInBackground -baackground 작업 구간 onProgressUpdate -doInBackground 이 실행되는 도중에 호출 / 중간중간 UI 업그레이드 하고 싶을 때 onPostExcute -doInBackground 가 완료 되면 호출이 된다. @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setConte.. 2020. 3. 16.
Android studio (안드로이드 스튜디오) SharedPreference 초기 설정값 저장, 간단한 데이터 저장 용이 / GSON SharedPreference 간단한 데이터 저장 용이 보통 초기값,초기 설정값 등을 저장하는 데에 사용 경로 : data/data/pakageName/shared_prefs/이름 GSON 사용시 객체 저장 가능 MODE_PRIVATE 해당앱만 MODE_WORLD_READABLE 다른 앱에서 읽기 가능 MODE_WORLD_WRITABLE 다른 앱에서 쓰기 가능 //sf에 데이터 저장 SharedPreferences sharedPreferences = getSharedPreferences(sfName,MODE_PRIVATE); //(이름, 모드) SharedPreferences.Editor editor = sharedPreferences.edit(); //변화줄때 editor.putString(sfKey,.. 2020. 3. 15.
Android studio (안드로이드 스튜디오) Pager, TabLayout/ 페이저, 탭레이아웃 1. gradle implementation 'com.google.android.material:material:1.0.0' implementation 'androidx.cardview:cardview:1.0.0' 2. PagerAdater.java / FragementOne.java , …Two.. (형성할 탭 개수만큼) 3. 프라그먼트에 맞는 xml 파일 (형성할 탭 개수만큼) viewPager = findViewById(R.id.view_layout); tabLayout = findViewById(R.id.tab_layout); //탭이름 설정 tabLayout.addTab(tabLayout.newTab().setText("프로필")); .. //어댑터 연결 PagerAdapter pagerAdap.. 2020. 3. 12.
Android studio (안드로이드 스튜디오) RecyclerVIew , 클릭, 화면전환 - 응용편 Android studio (안드로이드 스튜디오) RecyclerVIew , 클릭ClickListener, 화면전환(intent) 앱에서 대량의 데이터 세트 또는 자주 변경되는 데이터에 기반한 요소의 스크롤 목록을 표시해야 할때 주로 리사이클러뷰가 사용된다. RecyclerView 는 ListView 보다 더 진보하고 유연해진 버전이다. 지원라이브러리 추가 dependencies { implementation 'com.android.support:recyclerview-v7:28.0.0' } 메니페스트에 추가 package com.example.recyclerview; import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatA.. 2020. 3. 10.
Android studio (안드로이드 스튜디오) RecyclerView 리사이클러뷰 , v7 , Jetpack (androidx) v7 지원 라이브러리 리사이클러뷰 예시 developer.android.com/guide/topics/ui/layout/recyclerview RecyclerView로 목록 만들기 | Android 개발자 | Android Developers RecyclerView를 사용하여 동적 콘텐츠의 목록과 그리드를 표시합니다. developer.android.com import java.util.ArrayList; public class MainActivity extends AppCompatActivity { public RecyclerView recyclerView; ArrayList itemList; @Override protected void onCreate(Bundle savedInstanceState) .. 2020. 3. 9.
Android studio (안드로이드 스튜디오) 리스트뷰 아이템 체인지, ListView 클릭 notifyDataSetChanged : 데이터 변화를 갱신 LinearLayout cmdArea = (LinearLayout) view.findViewById(R.id.item_view_layout); cmdArea.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { getItem(position).setCount(124); notifyDataSetChanged(); //데이터 변화 갱신 Toast.makeText(v.getContext(), "클릭 되었습니다.", Toast.LENGTH_SHORT).show(); } }); 2020. 3. 8.
Android studio (안드로이드 스튜디오) ListVIew, BaseAdapter, headerview, footerview / Spoon라디오 처럼 구현해보기 리스트뷰 스크롤이동시 -> 리스트가 빠져나가 어댑터로 -> 어댑터는 리스트뷰를 TextVIew에 임시저장(뷰 비워둠) -> 재활용 메인.java public class MainActivity extends AppCompatActivity { ArrayList list; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ListView listView = findViewById(R.id.List_view); addList(); //headerview, footerview LayoutInflater layoutI.. 2020. 3. 5.