이번 홀가분 프로젝트 이벤트에서 선착순을 홀가분 정리함을 준다고 해서 응모를 해서

홀가분 정리함을 받았어요 ^^


솔직히 정리함 상자를 준다고해서 그냥 무료니깐 받고보자 하고 신청하긴 했는데

받아보니 상자도 이쁘고 튼튼하고 응모하기 잘 했다는 생각을 했당


상자 크기도 적당하고 디자인도 맘에 들어요 ㅎ


앞에서 찍은 상자 저 은색 부분이 손잡이에용 ㅎ



상자를 열어서도 한컷 지금은 책상 위에 두고 지저분한건 모두 넣어뒀어요

이름 그대로 홀가분 정리함을 이용해서 깔끔하고 홀가분 하게 ㅋㅋ



옆에는 홀가분 이라고 적혀있네요 ㅎㅎ

홀가분 마켓 기대 됩니당 ㅎ


오늘은 디지털 미디어시티역 맛집 을 다녀왔습니다

상암시대!!  맛집인데요 통 오징어 떡볶이이와 볶음이 너무 맛있어 보여서 찾게 되었어요


디지털 미디어시티역에서 한 5분에서 10분 걸어서 도착 했습니다.

식당이 크진 않지만 확장공사를 하는 듯 했습니다.



좁지만 깔끔하고 좋았어요 ㅎㅎ

주문을 받고 요리 준비중이십니당 ㅎㅎ



드디어 오징어가 통째로 올려저 나왔습니다.

쫄깃 쫄깃하니 너무 맛있어 보입니다.

옆에는 볶음을 해먹을 밥이 같이 나왔습니다. 사실 볶음이 더 땡겨요



오징어가 익어가고 이제 가위로 먹기 좋게 자르기에 들어 갑니당 ㅎㅎ



자르고 나니 더욱 땡기고 맛있어 보입니다 ㅡㅜ 너무 좋아

먹어보니 적당히 매콤하고 오징어는 쫄깃 쫄깃하고 너무 맛있어요

안에 떡이 들어있는데 떡도 무슨 떡인지 제가 떡을 싫어하는데 먹게 되더라구요

정말 치즈같은 떡이랄가요  맛있습니다.



제가 밥을 볶아먹는걸 너무 좋아하는데 ㅎㅎ

이제 볶아 먹어 보겠습니당



오징어는 다 먹지 않고 떡만 먼저 다먹고 오징어는 조금 남긴 상태로

밥을 볶아먹었습니다 ㅎㅎ 김과 참치 마요네즈 밥 이 들어간 볶음

약간 매콤해서 저렴한 가격에 2분이고 양도 딱 정당하니 배부르게 먹고 나왔습니다 ^^

매콤한게 생각나면 또 가야겠습니다 ㅎㅎ

 

아! 가격은 1만2천원입니당


안드로이드 Fragment 초보자를 위하여 간단하게 소스만을 정리 해볼까 합니다

fragment 생명주기등 여러가지 설명을 해야 하지만 fragment에 대한 내용은

이미 많은 분들이 포스팅해서 저는 소스만을 소개 해드리겠습니다 ^^


일단 fragment 를 사용하기위하여 레이아웃안에 FrameLayout을 추가 해줘야 합니다.


Fragment 를 사용할 xml 안에 아래 소스를 입력해 주시면 됩니다.

FrameLaouy 안에 Fragment 화면이 보여지게 됩니다.


<FrameLayout
        android:id="@+id/main_frame"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
    </FrameLayout>


이제 fragment 를 사용해보겠습니다

Fragment를 생성하고 위에서 추가한 framelayout에 화면을 보여주는 소스입니다.


FragTsaction 는 fragment를 관리하기 위하여 생성합니다.


FragmentTransaction FragTsaction = getSupportFragmentManager().beginTransaction();


// 아래와 같이 생성하시거나 excalss.instanc(); 식으로 생성 하셔도 되며.

// intance는 따로 static으로 정의를 한 것입니다.
FragTsaction.replace(R.id.main_frame, new excalss()); 


// fragment 보여지거나 사라질때 애니메이션 처리 입니다.
FragTsaction.setCustomAnimations

(R.anim.layout_leftin, R.anim.layout_leftout)


//replace(R.id.newmain_frame, targetFragment, "newmain_fragment")

//위에 repace 방법과 동일하지만 파라미터 하나가 더있습니다.

//마지막 파라미터 "newmain_fragment" 값은

//이름을 정해준다고 생각 하시면 됩니다. 

//추가해둔 fragment를 다시 불러 올때사용 됩니다


FragTsaction.commit();  // 마지막으로 commint을 해주면 동작을 하게됩니다.



마지막으로 추가한 fragment불러와서 화면에서 사라지게하거나 삭제하는 소스입니다.


Fragment 페이지 삭제 방법 2가지가 이습니다.


1번 framelayout id 값으로 추가된 fragment를 불러와서 remove 시켜주는 방법입니다.
Fragment mFragment = getSupportFragmentManager().findFragmentById(R.id.main_frame);
FragTsaction.remove(mFragment);


2번 위에서 설명 했던 지어준 이름을 가지고 remove 시켜주는 방법입니다.
Fragment mFragment = getSupportFragmentManager().findFragmentByTag("newmain_fragment")
FragTsaction.remove(mFragment);
 


fragment에대하여 더욱 자세하게 알고 사용하면 좋지만

여기저기 블로그를 보시다가 정리가 안되시는 분들은 위에 소스를 사용해보시고

이론을 다시한번 보시면 더욱 쉽게 이해가 가실거라 생각됩니다.

또한 개발도 위에소스만으로도 충분하게 개발은 가능합니다 그래도 이론적으로 알고

개발하시는게 더욱 좋을거라 생각 됩니다. ^^


추가로 위에서 사용된 애니메이션과 intance 를 보여드리고 마무리 하겠습니다.


fragment class 에서 생성하시면 됩니다.

public static exclass Instance(int i){
        exclass fragment = new exclass();
        Bundle args = new Bundle();
        args.putInt("Num", i);
        fragment.setArguments(args);
        return fragment;
    }

애니메이션1 입니다. R.anim.layout_leftin
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >

    <translate
        android:duration="300"
        android:fromXDelta="100%p"
        android:toXDelta="0" />

</set>

애니메이션2 R.anim.layout_leftout
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >

    <translate
        android:duration="300"
        android:fromXDelta="0"
        android:toXDelta="-100%p" />

</set>

많은분들이 댓글을 달아 주셨는데요 모두 초대장을 보내 드렸습니다 ^^


초대장이 모두 소진 되었습니다.  다음에 또 초대장이 생기면 배포하겠습니다



i n v i t a t i o n

티스토리 초대장

+ 남은 초대장 수 : 0

안녕하세요!

티스토리에 보금자리를 마련하시려는 여러분께 초대장을 배포해 드리려고 합니다.

나만의, 내 생각을, 내 기억을 담는 소중한 블로그를 만들고 싶다면 티스토리로 시작해보세요!

티스토리 블로그는 초대에 의해서만 가입이 가능합니다. 원하시는 분은 댓글에 E-mail 주소를 남겨주시면 초대장을 보내드립니다. 남겨주실 때에는 꼭 비밀댓글로 남겨주세요!

초대장을 보내드리고 바로 개설하시지 않으신 분들은 초대장을 회수할 수도 있으니 바로 개설해주세요!

Yes
이런 분들께 드립니다!
1. 다른 블로그를 사용해보셨던 분
2. 이메일 주소가 정상적인 분
3. 블로그를 시작하려는 이유를 남겨주신 분!
No
이런 분들께 드리지 않아요!
1. 이메일 주소가 의심되는 분!
2. 이메일 주소를 남기지 않으신 분
3. 이유도 없이 달라고 하시는 분!
티스토리 이래서 좋아요!
1. 이미지, 동영상, 오디오, 파일까지! 무한 용량과 강력한 멀티미디어를 올릴 수 있어요!
2. 스킨위자드로 스킨을 내맘대로~ 거기에 기능 확장 플러그인까지!
3. 내가 원하는대로 myID.com으로 블로그 주소를 만들 수 있어요!


안드로이드 앱 설치 유무 판단해서 다른 앱을

바로 실행 하거나 구글스토어로 설치 할 수 있도록

이동시키는 소스입니다.


페키지명으로 앱을 실행 시켜서 앱이 없다면

exception 이 발생하면서 구글플레이로 이동시키는

방법입니다~~



PackageManager pm = getActivity().getPackageManager();

try {
                pm.getApplicationInfo("패키지명", PackageManager.GET_META_DATA);
                Intent intent = pm.getLaunchIntentForPackage("페키지명");
                startActivity(intent);
            } catch (NameNotFoundException e) {
                Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=페키지명"));
                startActivity(intent);
            }


안드로이드 앱 종료시 백버튼 두번 터치 후 앱 종료

하는 방법을 소개 하겠습니다~


많은 앱들이 종료할때 옛날에는 팝업창을 띄워서

종료 여부를 물었지만 지금은 백버튼 터치시

토스트로 경고하고 한번더 터치하게되면 종료되게

많이 하고있는데요 


이걸 그대로 구연할 수 있는 소스를 소개하겠습니다.

아래 소스를 보시면 fnish() 를 오버라이드 해서

종료시 체크하도록 구현 하였습니다.


FinishFlag 라는 변수를 생성 해두고 아래 소스를 이용 하시면 됩니다.


@Override
    public void finish() {
        if ( FinishFlag == false){
            Toast.makeText(this, "'뒤로'버튼을 한번 더 누르시면 종료됩니다.", Toast.LENGTH_SHORT).show();
            FinishFlag =  true;
            mKillHandler.sendEmptyMessageDelayed(0, 2000);
            return;
        }
        super.finish();
    }
    
    Handler mKillHandler = new Handler(){
        @Override
        public void handleMessage(android.os.Message msg) {
            if (msg.what == 0)
                FinishFlag = false;
        };
    };

Scrollview 안에 Listview 가 있다면

listview 가 제대로 노출이 되지 않습니다.

Scrollview 안에 있는 뷰 높이를 정확히 알 수 없어서

생기는 문제 인데요 이걸 해결 하기 위해서는

listview 높이를 계산하고 높이를 설정해주는 방법입니다.


아래 소스를 이용하시면 listview 의 높이를 구해서

높이를 정의 해줄 수 있습니다.

Scrollview 에서 listview 모든 내용을 모두 노출 해줄 수 있습니다.


protected void onCreate(Bundle savedInstanceState) {
        ListView listview1 = (ListView) view.findViewById(R.id.list1);
        ArrayAdapter<data> adapter = new ArrayAdapter<data>(this, R.layout.simple_list_item, listData1);
        listview1.setAdapter(adapter);
 
        <data>setListViewHeightBasedOnChildren(listview1);
        
}
 
public static void setListViewHeightBasedOnChildren(ListView listView) {
        ListAdapter listAdapter = listView.getAdapter();
        if (listAdapter == null) {
            // pre-condition
            return;
        }
 
        int totalHeight = 0;
        for (int i = 0; i &lt; listAdapter.getCount(); i++) {
            View listItem = listAdapter.getView(i, null, listView);
            listItem.measure(0, 0);
            totalHeight += listItem.getMeasuredHeight();
        }
 
        ViewGroup.LayoutParams params = listView.getLayoutParams();
        params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
        listView.setLayoutParams(params);
        listView.requestLayout();
}

+ Recent posts