본문 바로가기

PROGRAMING/Android

(26)
Fragment와 BackStack 이슈 (show,hide 버그로 보여짐) replace 사용. 안드로이드 4.0에서 선보인 Fragment예제를 보다 보면 FragmentManager와 FragmentTransaction을 이용해서 Fragment를 붙이게 되는데예제를 그대로 따라 하다보면 몇가지 오류를 범하게되었다 버튼 1 버튼 2 버튼 3 FragmentLayout @Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button btnFisrt = (Button)findViewById(R.id.btnFirst);Button btnSecond = (Button)findViewById(R.id.btnSecond..
interface를 이용하여 DialogFragment이벤트의 구현부를 다른 장소에 구현한다. http://developer.android.com/guide/topics/ui/dialogs.html interface를 정의 하여 DialogFragment를 호출한 쪽에서 이벤트 액션에 대한 내용을 구현하도록 한다. DialogFragment ublic class CheckBoxListAlertDialogFragment extends DialogFragment {//http://developer.android.com/guide/topics/ui/dialogs.html /* The activity that creates an instance of this dialog fragment must * implement this interface in order to receive event callback..
DialogFragment(AlertDialog) 안에 ListView 넣기 및 이벤트 받기 확인 DialogFragment 안에 ListView 넣기 Activity에 ListView 넣기와 다르지 않다.CustomAdapter를 구현하여 View에 집어넣으면 된다. public Dialog onCreateDialog(Bundle savedInstanceState) { mCheckBoxHashMap= mListener.getCheckBoxHashMap(); mCheckBoxArrayAdapter = new CheckBoxArrayAdapter(getActivity()); mCheckBoxArrayAdapter.addAll(mCheckBoxHashMap.keySet()); ListView tmp = (ListView)getActivity().getLayoutInflater().inflate(R.lay..
DialogFragment DialogFragmenthttp://developer.android.com/guide/topics/ui/dialogs.html 허니컴 (API11) 부터 Dialog를 생성할때는 사용하는 객체이다. 이전 버전 부터 존재하던 AlertDialog를 사용하여 UI를 생성하는 방법과Fragment를 쓰는 것과 동일한 방법으로 UI를 생성하는 방법이 있다. Basic Dialog @Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {View v = inflater.inflate(R.layout.fragment_dialog, container, false);View tv =..
Media File 삭제 , 단일 File MediaScanning 하기 알송 음악 어플을 마켓에서 다운 받아서 사용하면서 딱 한가지 불편한점이 있었다.음악 파일을 삭제할 수 없다는 것이었다. 음악 파일을 삭제하는 방법을 찾아보았다. 참고 : http://stackoverflow.com/questions/8379690/androids-media-scanner-how-do-i-remove-files 하나는 ContentProvider를 이용하는 방법. 다른 하나는 파일을 삭제하고 해당 파일만 Media Scanning을 하는 방법이다. Media File 삭제 하는 방법
Fragment에서 하단 OptionMenu 사용하는 방법 Fragment에서 하단 OptionMenu를 사용하려면 Fragment에 OnCreate 에 @Overridepublic void onCreate(Bundle savedInstanceState) {LOG.i(CLASSNAME, "2--onCreate/Created");setHasOptionsMenu(true);super.onCreate(savedInstanceState);} 위와 같이 setHasOptionsMenu(true)를 해줘야 한다. @Overridepublic void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {LOG.i(CLASSNAME, "onCreateOptionsMenu");menu.add(0, 1, 0, "삭제");menu.ad..
listView에서 checkbox 넣을 경우. 뷰 재사용 때문에 발생되는 문제 수정. 삭제할 음악 파일을 listvew에 CheckBox를 넣어 체크된 항목들을 삭제하도록 하려고 하였다.CheckBox가 true가 될때 Map 담아 후에 삭제 항목을 클릭시 삭제되도록 한다. 뷰 재 사용으로 인해 체크 하지 않았던 항목도 체크 된 것 처럼 나타났다.Map의 값을 읽어 CheckBox를 초기화 시켰다. holder.cbId.setOnCheckedChangeListener(new OnCheckedChangeListener() {Map에 데이터를 넣을 때 위 OnCheckedChangeListener 을 사용하려고 하였으나 최초 Map에서 데이터를 읽어와 CheckBox를 초기화할때도 해당 Listener가 연결되어 문제가 되었다. 그래서 아래와 같이 OnClickListener를 사용하여 Ma..
listView 항목에 Audio Albumart(thumbnail)을 지연 없이 나타내기 LinkedHashMap과 SoftReference사용 [캐시 처리] LinkedHashMap과 SoftReference사용 Cache처리를 하는 로직이다.한번 디스크에서 읽은 bitmap을 키값에 대응하여 저장한다.인터넷의 아래 소스를 퍼왔다. http://code.google.com/p/android-imagedownloader/source/browse/trunk/src/com/example/android/imagedownloader/ImageDownloader.java 구조는 LinkedHashMap을 사용한 HARD CASH와 SoftReference를 사용하여 메모리가 부족할때 GC의 대상이 될수 있도록 한 HashMap 2가지가 유기적으로 동작한다. private static final int HARD_CACHE_CAPACITY = 10; private fina..