CoordinatorLayoutAndFabAndSnacBar public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); fab.setOnCl..
CoordinatorLayout AndroidMainfest.xml: android:theme 를 NoActionBart 로 설정해준다 styles.xml activity_main.xml toolbar 를 완전히 위로 올리는 속성은 아래와 같이 설정 해주면 된다. app:layout_scrollFlags="scroll|enterAlways" app:layout_scrollFlags="scroll|enterAlwaysCollapsed" app:layout_scrollFlags="scroll|exitUntilCollapsed" content_scrolling.xml MainACtivity.java public class MainActivity extends AppCompatActivity { Toolbar ..
TabLayout 구현 : android:theme 를 NoActionBar로 설정하자. Toolbar 를 actionBar로 이용하기 위함 : android.support.v7.widget.Toolbar 는 ActionBar를 더욱 유연하게 만든 것이다. 레이아웃 파일 내에서 다른 UI 요소와 함께 배치할 수 있기 때문이다. Toolbar 와 ViewPager 를 연계하고 연결은 자바코드로 한다. public class MainActivity extends AppCompatActivity { Toolbar mToolbar; TabLayout mTabLayout; ViewPager mViewPager; @Override protected void onCreate(Bundle savedInstanceSta..
네이게이션 드로어를 사용하기 위해서 네이게이션 뷰가 토대가 됩니다. NavigationView 구축해내는 내비게이션 드로어에는 헤더와 메뉴가 있습니다. app:headerLayot="@layout:navigation_drawer_header" xml 파일을 지정해 줍니다.헤더 부분은(navigation_drawer_header.xml) 개발자가 자유롭게 정의 하면 됩니다. 메뉴는 res/menu 아래에 정의합니다 헤더부분 메뉴부분 참고로 manifest 파일에서 앱테마가 NoActionBar로 설정해야 한다. public class MainActivity extends AppCompatActivity { DrawerLayout mDrawerLayout; Toolbar mToolbar; Navigation..
1. HttpApiClient 설계 public class HttpApiClient { private static final String TAG = "HttpApiClient"; private Retrofit retrofit; private IApiService apiService; private NetworkStateListener listener; private Context context; private String url; public interface NetworkStateListener { void onNetworkStateListener(boolean isEnable); } public void setOnNetworkStateListener(NetworkStateListener listene..
요구사항 - 화면에 키와 몸무게 입력을 요구하는 텍스트와 BMI를 계산하는 버튼이 존재 한다. - 버튼을 누르면 BMI 값이 계산되고, 백그라운드에서 저장 처리를 시작한다(저장 처리중에는 버튼이 비활성화 된다)- 저장 처리를 마치면 버튼이 다시 활성화 된다 ----------------------------------------------------------------------------------------------------클래스 설계 MainActivity1. 입력된 값을 BmiCalculator 에 계산을 요청한다 2. BmiCalculator에서 계산되어 넘어온 값을 BmiSaveService 에 전달한다 3. BMI 값을 저장한다 4. 저장을 마치면 그 결과값을 앱 내에 BroadCast..
내 스타일 콜백 메소드 정의 Call 과 CallBack 개념 일반적으로 사용자가 시스템에 임의의 서비스를 호출하는 것을 call 이라고 한다 (보편적)이런 보변적인 방법과 달리 시스템 측에서 이벤트를 발생시켜 이에 대한 처리를 해달라고 요청해오는 과정이 있기 때문에 콜백이라고 한다. 즉 사용자가 시스템에게 무엇을 처리해 달라고 요청하면 콜시스템이 사용자가 요청한 처리를 하다가 다른것도 처리해달라고 요청 하면 콜백이라 생각하면 될 것 같다. 콜백함수 사용 목적 특정 조건을 만족할때 어떤 행위를 일으켜야 할때, 행위의 주체가 되어서 특정 조건을 만족하는지 안하는지를 계속 체크 한다 특정 조건이 주체가 되어 조건 만족시 다른 행위에게 작업을 요청 한다. 예시 ) 어댑터안에 존재하는 레이아웃 높이를 해상도별로..
mvvm GitHubService 그래들 설정 dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'com.android.support:appcompat-v7:27.1.1' implementation 'com.android.support.constraint:constraint-layout:1.1.2' implementation 'com.android.support:design:27.1.1' implementation 'com.android.support:cardview-v7:27.1.1' // http image implementation 'com.github.bumptech.glide:glide:3...
GitHubService Ex apply plugin: 'com.android.application' android { compileSdkVersion 27 defaultConfig { applicationId "com.example.neofuture.recyclerview1" minSdkVersion 15 targetSdkVersion 27 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-androi..
11.ContentProvider를 알자 콘텐츠 제공자는 구조화된 데이터 세트의 액세스를 관리합니다. 데이터를 캡슐화하여 데이터 보안을 정의하는데 필요한 메커니즘을 제공하기도 합니다. 콘텐츠 제공자는 한 프로세서의 데이터에 다른 프로세스에서 실행 중인 코드를 연결하는 표준 인터페이스 입니다.콘텐츠 제공자 내의 데이터에 액세스 하고자 하는 경우, 애플리케이션의 Context에 있는 ContentResolver 객체가 제공자 객체와 통신하며, 이 객체는 ContentProvider를 구현하는 클래스의 인스턴스 입니다. 제공자는 클라이언트로 부터 데이터 요청을 받아 요청된 작업을 수행하고 결과를 반환합니다. ContentProvider를 안드로이드 애플리케이션에 일부이지고 데이터 작업을 위한 고유의 UI를 제..