반응형

프로그램 247

getTag() 값은 String 으로만 변경 가능한 걸까?

예를 들어, setTag() 로 넣어둔 값을 빼낼 때는 이렇게 쓴다. TextView tx = new TextView(); tx.setTag( 1 ); int v = Integer.parseInt( tx.getTag().toString() ); 그런데, setTag() 에서 넣을 값은 Object 형식이다. 그럼, setTag() 에는 실제로 아무거나 다 넣을 수 있다는 건데. 그럼, 이런 코드도 될까? TextView tx = new TextView(); ImageView im = new ImageView(); tx.setTag( im ); ImageView v = (ImageView)( tx.getTag() ); 흠. 가능성이 없지는 않은데 말이쥐.

프로그램 2012.01.21

Android Back Key 이용법 2.

1. 2.3 버전인가 2.1버전인가에서부터, onKeyUp을 쓰도록 추천되었다고 한다. 2. 기존 소스에 key 이벤트의 super 핸들러가 빠져 있어서, 기존 코드로는 keyEvent가 싸그리 overwrite 되어버러서 명시적으로 정의되지 않은 menu key 등의 이벤트는 아무것도 작동하기 않게 되어버린다. 이를 막기 위해서, super.onKeyUp( ) 을 넣어준다. 3. 최종적인 코드의 모습은 다음과 같다. public boolean onKeyUp( int keyCode, KeyEvent event ){ switch( keyCode ){ case KeyEvent.KEYCODE_BACK : Toast.makeText(this, "BackKey", Toast.LENGTH_SHORT ); break..

프로그램 2012.01.19

Java 에는 함수 포인터가 없다.

C 나 C++ 같은 경우는 함수 포인터로 실행할 기능을 동적으로 제어할 수 있다. 그런데, 모든 걸 객체로 처리하는 Java 는 function pointer 를 인자값으로 전달할 수 없다. 그러므로, 만일 동적으로 실행 기능을 정의하려 한다면, 1. override - 재정의를 이용한다. > 생성자 수준으로 동적 지정이 가능하다. 2. class - 함수 동적 지정을 위한 class를 선언한다. > 인자값으로 함수의 집합 객체를 넘기고, 조건에 따라 함수 집합 객체 안의 함수를 골라 지정한다. 3. 추신 : override - 재정의 ( 예: 클래스마다 같은 함수 이름으로 다른 기능을 수행 ) , overload - 중복선언 ( 예: operator. 같은 함수가 여러 타입의 인자와 반환값을 가지는 것..

프로그램 2012.01.10

C# 지뢰찾기. Minesweepe.

C# 으로 지뢰찾기 게임을 만들었다. (엥? 화면에 바로 붙네?? ) 계기는... 지뢰찾기 보니까, 만들 수 있을 거 같아서. -_-; 지뢰찾기의 규칙이랄까... 프로그래밍에 필요한 로직은 다음과 같다. 1. 사용자가 임의의 칸을 클릭하면, 해당 칸을 중심으로 사방 8칸 안에 지뢰가 있는지 확인한다. 2. 만일 지뢰가 있다면, 1~8까지의 수가 표시된다. 3. 지뢰가 없다면, 빈 칸이 표시된다. 핵심은 3번의, "빈 칸은 얼마나, 어디까지 표시되는가" 인데... 이것도 패턴이 보여서, 정리했다. 1. 시작할때 width * height 격자가 생성된다. 2. 지뢰가 random 으로 박힌다. 3. 사용자가 클릭하면, 클릭한 곳이 지뢰면, 터지고 게임 끝. 4. 지뢰가 아니면, 흰색으로 바뀌거나 숫자가 표..

프로그램 2011.12.31

C# 에서, Control 을 동적으로 생성.

결론 : 코드로 생성한 Control은, Form 에 붙여줘야 화면에 보인다. 예를 들어, 어떤 함수에서 Button을 생성한다 치자. public void MakeButton() { Button newBtn = new Button(); Button.Left = 100; Button.Top = 100; Button.Visible = true; } 이것만으로는 부족하다. 예를 들어 Form 의 이름이 Form1 이라면, public void MakeButton() { Button newBtn = new Button(); newBtn.Left = 100; newBtn.Top = 100; newBtn.Visible = true; Form1.Controls.Add( newBtn ); Form1.Controls...

프로그램 2011.12.30
반응형