PROGRAMMING WORKSHOP

Skip Navigation Links. Skip Navigation Links.

Android|
TextView|ScrollView

이번에는 앞페이지의 내용을 확장하여
Toast개체를 사용하여 메시지를 팝압시켰던 것을
TextView콘트롤로 바꾸고, 나타내는 내용을 순환문으로 문자열을 생성하여
TextView에 나타나게 해 본다
TextView콘트롤 개체를 생성하여 넣고 이 개체에 값을 넣어 보는 것이다(setText())
결과물은 아래와 같다



TextView는 VB의 라벨콘트롤같이 내용을 보여주는 콘트롤
그런데 내용이 많으면 화면을 넘친 부분은 숨어 버린다
스마트폰을 손으로 스크롤 하면서 내용을 이동시키는 ScrollView라는 컨트롤(View)를
TextView 콘트롤을 감싸주면 된다

public class MainActivity extends Activity implements OnClickListener {
	TextView textview ;
	boolean bX = false;
	
    @SuppressLint("NewApi") @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
		....
		....
		....
		textview = new TextView(this);
		....
		....
    }

	public void onClick(View v) {
		....
		....
		....
		textview.setBackgroundColor((bX)?Color.GRAY:Color.WHITE);
		bX=!bX;
		....
		....
		
	}
}

위와 같이 변수를 전역변수로 선언하는 것으로 해보자
이렇게 하면 findViewById와 같은 번거로움을 하지 않아도 되니까..
논리값을 처리하는 연산자 VB에서 Not에 해당 하는 것 java에서는
bX != bX
라고 처리한다 같다는 것은 == 아니라고 하는 것은 !=

화면 구성(Activity개체의 구성내용)을 그림으로 다시 정리 해보자



이 내용을 xml화일로 구성한 layout 으로 만들어서 사용할수도 있지만
여기에서는 Runtime으로 각각의 개체가 만들어지는 것으로 하고 있으니..
xml화일이 필요없이 그냥 java 크래스화일하나면 되는 것으로 하고 있다
프로그램적으로 개체를 생성하고 개체를 상위개체의 자식으로 추가하고
개체의 이벤트프로시져를 지정해주고..
그러면 프로그래밍적으로 편하게 만들어 나갈수 있을 것이다
물론 나중에는 필요하면 xml화일로 화면을 구성하면서 적절히 Design Time과
Run Time의 개체생성을 혼용하면서 할 수 있을 것이고

이크립스에서 에뮤레이터로 보면 터치기능이 PC에는 없어서 볼수 없지만
안드로이드폰으로 실행을 하면...
아하..스크롤이 이렇게 되는 구나..
아무리 긴 문장이라도 TextView에 넣으면 이렇게 움직이네..라고 실감할 것이다
또한 아햐..이거 별것 아니네..
그렇다 별 것 아니다..별것 아닌 것을 잘 챙겨두고
자신만의 무언가 유용한 소루션아이디어만 있으면 도구는 챙겨 둔 셈이다
퇴직후..뭐 특히 별로 할일도 없으면 짬짬히 이런 도구들을 챙겨두는 것이
현대를 사는 길이다
Android와 더불어..uno-weekly에 본격적으로 시작하는 VB.net을 더불어
챙기면 더더욱 좋을 것이고..

본론으로 돌아가서 앞페이지에서는
개체를 참조할때 ID값을 얻어서 참조하였었으나
여기에서는 개체를 외부 변수로 표현하여 변수로 참조하는 부분이 추가 되었다

int iZ =random.nextInt(1000)+1 ; for(int iX=0;iX<iZ;iX++){ sAll+=sX+sX+sX+sX+'\n'; }

'\n' 이라는 표시는 앞으로 많이 나오겠지만 문자열속에서
줄바꿈을 하라는 표시이다 \t 이라고 하면 탭문자를 문자열속에
추가하라는 것이도..\n 은 new line의 의미이다

첨부한 java크래스화일을 여러분의 프로젝트의 메인엑티비티 코드와 바꿔주시고
실행하시면 될 것이다

***[LOG-IN]***