8월, 2017의 게시물 표시

암시적 인텐트로 데이터 공유하기(ShareCompat) - 안드로이드 개발 패턴 시즌2 에피소드6

이미지
출처: 안드로이드 개발자 유튜브 채널   암시적 인텐트를 사용해 데이터를 공유해야 할 경우 데이터 타입, 파일의 수 등을 고려해야한다. 엑스트라로 인텐트에 데이터를 저장해서 데이터를 공유할 수도 있다. 하지만 언급한 여러 고려사항을 처리 하려면 복수의 코드라인을 작성해야한다.   암시적 인텐트를 통해 데이터를 쉽게 공유할 수 있는 헬퍼 클래스인 ShareCompat를 사용하면 데이터 공유를 좀 더 쉽게 할 수 있다. ShareCompat과 내부 클래스인 IntentBuilder를 사용하면 여러 고려사항을 빠르게 처리할 수 있다. 텍스트 공유하기(MIME type: text/plain) Intent shareIntent = ShareCompat.IntentBuilder . from ( activity ) .setType( "text/plain" ) .setText( "shareText" ) .getIntent() ; if (shareIntent.resolveActivity(getPackageManager()) != null ){ startActivity(shareIntent) ; } HTML text 공유하기(MIME type: text/html) Intent shareIntent = ShareCompat.IntentBuilder . from ( activity ) .setType( "text/html" ) .setHtmlText(shareHTMLText) .setSubject( "Subject" ) .addEmailTo( "email address" ) .getIntent() ; if (intent.resolveActivity(getPackageManager()) != null ...

토스트 메시지 빠르게 사라지게 하기

토스트메시지를 연속으로 띄울 때, 아무 조건식 없이 구현하게되면 이전에 띄웠던 토스트 메시지가 빠르게 사라지지 않고 정해진 시간만큼 화면에 남아있게된다. Toast.LENGTH_SHORT으로 duration매개변수를 설정해도 마찬가지다. 이럴 땐, cancel()메서드를 써서 토스트객체가 null이 아닐경우 토스트 뷰를 사라지게 해주면 된다. @Override public void onListItemClick ( int clickedItemIndex) { if ( mToast != null ){ mToast .cancel() ; } String toastMessage = "Item #" + clickedItemIndex + "is clicked." ; mToast = Toast. makeText ( this, toastMessage , Toast. LENGTH_LONG ) ; mToast .show() ; } 위 코드에선 리스트 뷰 내에 구현된 아이템을 클릭할 경우 리스너의 onListItemClick메서드가 실행되도록 하였다.