일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 랜덤ID
- OutlinedButton
- 팝업액티비티
- Dialog
- Android
- 코틀린
- ButtonWithButton
- ViewModel
- ArrayList
- Kotlin
- MaterialButton
- textview
- 안드로이드
- EditText
- Imageview
- firebasefunctions
- firebase
- FRAGMENT
- 안드로이드 스튜디오
- RealtimeDB
- button
- androidstudio
- 안드로이드스튜디오
- nav_graph
- ROOM
- BottomSheetDialog
- 밑줄
- Activity
- lifecyclescope
- 뷰바인딩
- Today
- Total
목록안드로이드앱 (51)
안드로이드 앱 개발
참고 리사이클러뷰 아이템 클릭 이벤트 처리. (RecyclerView Item Click Event) :: 개발자를 위한 레시피 (tistory.com) 리사이클러뷰 아이템 클릭 이벤트 처리. (RecyclerView Item Click Event) 1. 리사이클러뷰(RecyclerView) 아이템 클릭. 지난 글 [안드로이드 리사이클러뷰 기본 사용법. (Android RecyclerView)]와 [안드로이드 리사이클러뷰 사용 예제. (Android RecyclerView Example)]에서 리사이클러.. recipes4dev.tistory.com 먼저, Recyclerview는 listview나 gridview처럼 직접 뷰에 setOnItemClickListenr나 setOnLongItemClickL..
1. RecyclerView를 사용할 Activity나 Fragment.xml에 RecyclerView 위젯을 추가한다. * scrollview 안에 바로 recyclerview만 넣으면 스크롤의 오류가 있다고 하니 유의하자 2. RecyclerView의 개별 row (item) xml을 작성만든다. res>layout> item.xml 3. RecyclerAdapter.java를 만들어준다. public class RecyclerAdapter_Memo extends RecyclerView.Adapter { ArrayList list; RecyclerAdapter_Memo(ArrayList list) { this.list = list; } @NonNull @Override public ViewHolder..
1. MaterialCardView 사용 2. ImageButton 이용 // bg_ib_capture_ripple.xml 파일 * 주의 MaterialCardview에서 cornerRadius를 100dp로 설정하니까 자꾸 화면에서 사라지는 오류가 생겨서 알아봤다. 기본적으로 cornerRadius는 width나 height의 최대 half size로 설정해야 오류없이 원형을 나타낼 수 있었다.
1. finish나 startActivty 이후에 overPendingTransition 메서드를 추가 overridePendingTransition(R.anim.horizon_enter, R.anim.fadeout); 앞 파라미터에는 새로 띄울 액티비티의 애니메이션을, 뒤 파라미터에는 사라질 액티비티의 애니메션을 지정하면 된다. res>anim> 애니메이션.xml //none.xml Nothing happenes
//설정 해제 viewHolder.timeTvHolder.setPaintFlags(0); //취소선 설정 viewHolder.timeTvHolder.setPaintFlags(Paint.STRIKE_THRU_TEXT_FLAG); //밑줄치기 timeTv.setPaintFlags(Paint.UNDERLINE_TEXT_FLAG);
RadioGroup rg = (RadioGroup)findViewById(R.id.radioGroup1); final TextView tv = (TextView)findViewById(R.id.textView2); rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group, int checkedId) { String result; if(checkedId == R.id.radio3){ tv.setText("정답"); }else{ tv.setText("오답"); } } }); //코틀린버전 binding.radioGroup.setOnChe..
사실 진작부터 고려했어야 하는 부분인데, 미루던 내용을 이제서야 찾아보고 정리한다. 알다시피 안드로이드 기기는 고유의 DPI (Density Pixel Index)를 갖고 있어서 따로 설정을 해줘야 한다. 공식문서에서도 보면 사이즈에 대한 하드코딩을 지양하라고 나와있다. * 폴더생성시 오타 조심 그리고 각각의 폴더안에 dimens.xml 이라는 파일을 만들어준다.
ImageView나 ImageButton에 원하는 이미지를 넣을때 크기를 맞추느라 애먹은 적이 있다. 각 view들의 width나 height를 조절해도 실제 이미지크기가 다르면 잘리거나 정렬이 안맞기 때문이다. 따라서 각 뷰의 속성에 아래 속성들을 추가해주면 된다. android:adjustViewBounds="true" // 뷰의 경계값 인식 android:scaleType="fitCenter" //가운데 정렬
이전 방법들을 동일하게 사용해도 이상하게 listview나 gridview의 버튼을 클릭시 ripple effect가 안 먹을 때가 있다. 이 때, listview나 grideview의 drawSelectorOnTop 속성을 true로 해주면된다. 아마도 single cell이나 row의 배경색 or 커스터마이징해서 셀렉터가 뷰 아래 깔려서 보이지 않는 듯 하다.
1. 그냥 단일 fragment를 refresh하는 방법은 간단하게 fragment를 붙였다가 떼면 된다고 한다. FragmentTransaction ft = getFragmentManager().beginTransaction(); ft.detach(this).attach(this).commit(); 2. 그러나, BottomNavigationView에서는 위 방법이 안 먹혔다. Refresh를 해줘야 할 때, 해당 Fragment를 지웠다가 다시 초기화한 후 붙여줬다. getSupportFragmentManager().beginTransaction().remove(fragment_memo).commit(); fragment_memo = new Fragment_Memo(); getSupportFragme..