본문 바로가기

hashmap, hashtable, ConCurrentHashMap 의 차이점 현재 공부용으로 캐치마인드 모바일 버전을 만들고있는데 게임 턴을 나누는데 있어서, 간헐적으로 오류가 생기곤했다. 그래서 Thread-Safe라는것을 공부했고, 서버단의 소스에 문제가 있다는걸 알게되었다. hashmap은 동기화가 되지않아 멀티 쓰레드상황에서 적합하지 않다는 것이 였다. 그래서 Collections.synchromizedmap(map)을 이용해서 해결할려고 했으나, hashmap은 동기화를 보장하지 않는다는 것이였다. 그래서 map, hashtable, ConCurrentHashMap을 이용하려고 차이점을 찾고 정리한다. HashMap HashMap은 synchronized 키워드가 없기 때문에 동기화가 보장되지 못한다. (싱글 스레드 환경에서 사용하길) 따라서 동기화처리를 하지 않기 때문..
edittext 입력 불가로 만들기 Edittext 활성화editText.setFocusableInTouchMode (true); editText_massage.setFocusable(true);Edittext 비활성화editText.setClickable(false); editText.setFocusable(false);
Relative layout에서 layout 최상단으로 올리기 올릴화면&객체명.bringToFront();
안드로이드 동적 textview 생성 import android.graphics.Color; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.Gravity; import android.view.ViewGroup; import android.widget.LinearLayout; import android.widget.TextView; public class MainActivity extends AppCompatActivity { private static final float FONT_SIZE = 10; private LinearLayout container; @Override protected void onCreate(B..
listview 데이터 추가시 포커스 하단으로 가게하기 listview.setSelection(adapter.getCount() - 1);
안드로이드 java코드에서 textview 색상 변경하기 TextView.setTextColor(Color.parseColor("#e65d5d")); "#e65d5d" 부분에 원하는 색상을 넣으면된다./
Address already in use (Bind failed) 에러 해결하기 Address already in use (Bind failed) 에러 해결하기 Server단에서 8080 포트에 연결 요청하는 자바코드를 구동중에 네트워크가 끊겨서 다음과 같은 에러를 마주했다 java.net.BindException: Address already in use (Bind failed) 당황하지말고 현재 사용중인 포트번호를 검색하자 netstat -lntp 현재 8080 포트가 8533이라는 PID를 가진 친구가 사용중인 것을 확인할 수 있다. 해당 친구를 죽여보자 kill -9 8533 그런후 다시 자바코드를 구동해보자 정상 실행되는것을 확인 할 수 있다.
Back버튼 두번으로 액티비티 종료하기 Back버튼 두번으로 액티비티 종료하기 원리는 다음과 같다.1) 처음 뒤로가기를 눌렀을때 backKeyPressedTime에 현재시간을 저장한다.2) 2초안에 뒤로가기를 다시 눌렀을때 조건문이 통과하여 액티비티 종료long backKeyPressedTime=0;@Override public void onBackPressed() { if (System.currentTimeMillis() > backKeyPressedTime + 2000) { backKeyPressedTime = System.currentTimeMillis(); return; } //현재 시간이 변수 backKeyPressedTime + 2000보다 작으면 앱 종료 if (System.currentTimeMillis()