본문 바로가기
코스웨어/10년 스마트폰BSP

[BSP]20100930-임종현

by 알 수 없는 사용자 2010. 9. 30.
728x90
반응형
오전-
Android-
 
arItem 컬렉션을 초기화하고 어댑터에 전달, 리스트 뷰와 연결한다.
어댑터는 원본을 읽어 타입에 맞는 뷰를 생성하고, 리스트 뷰는 리턴된 뷰를 표시한다.
=============================================================
public class ListOfViews extends Activity  {
        ArrayList<ListItem> arItem;
        public void onCreate(Bundle savedInstanceState)  {
                super.onCreate(savedIntanceState);
                setContentView(R.layout.listtest);
                arItem = new ArrayList<MyItem>();
                arItem.add(new ListItem(0, 제목, 입력내용”, “ ”, 0));
                arItem.add(new ListItem(1, “ ”, “ ”, “push”, R.drawable.icon));
                arItem.add(new ListItem(0, 이름을 입력하시오, 이름”, “ ”, 0));
                arItem.add(new ListItem(0, 나이도 입력하시오, 몇살이니”, “ ”, 0));
                arItem.add(new ListItem(1, , , 누르시오”, R.drawable.icon));
                arItem.add(new ListItem(1, , , 업로드”, R.drawable.icon));
                arItem.add(new ListItem(0, 주소, 어디사니”, “ “, 0));
                MultiAdapter MyAdapter = new MultiAdapter(this, arItem); //사용자 정의형 어뎁터를 만들어서 붙인다.
                ListView MyList;
                Mylist = (ListView)findViewById(R.id.list);
                Mylist.setAdapter(MyAdapter);
        }
}


====================================================================================================
스피너
§
윈도우에서의 콤보박스와 동일한 형태지만 크기가 작은 안드로이드 에서 사용하는것이 
스피너이다.
목록을 표시하며
AdapterView의 후손으로, 리스트 뷰와 용도가 동일하다.
§항상 펼쳐진 상태인 리스트 뷰에 비해 스피너는 클릭할 때만 팝업으로 펼쳐진다.
§여러 가지 선택 사항 중 하나를 선택 받을 때만 사용한다.
§어댑터를 통해 데이터를 공급받으며, 어댑터 생성 방법은 리스트 뷰와 동일하다.
§항목 뷰를 표시하는 기본 레이아웃의 종류.
simple_spinner_item
    - 문자열만 표시
simple_spinner_dropdown_item
    - 문자열과 라디오 버튼 표시

 [ simple_spinner_item]                           [ simple_spinner_dropdown_item ]

§스피너 자체에 적용할 레이아웃과는 별도로 클릭 시 나타나는 팝업의 레이아웃을 아래의 메서드로 지정한다.

public void setDropDownViewResource (int resource)
§인수로 스피너의 기본 레이아웃 두 가지 중 하나를 지정한다.
예제)
 

[ simple_spinner_item[ simple_spinner_dropdown_item ]
 
§@선택 사항에 대한 프롬프트 메시지를 팝업 상단에 따로 표시할 수 있다.
§@프롬프트는 아래의 메서드로 지정 가능하며, 리소스의 문자열 ID를 지정하거나 문자열 리터널을 직접 지정 가능하다.
§@XML 문서에 prompt 속성으로 지정 가능하나 이때는 리소스만 지정할 수 있다. 
- void setPromptId (int promptId)
- void setPrompt (CharSequence prompt)

§@스피너에서 선택 변경 시 AdapterView.OnItemSelectedListener 인터페이스의 메서드가 호출된다.
§@항목이 선택될 때, 모든 항목이 선택 해제될 때 각각 호출된다.
- void onItemSelected(AdapterView<?> parent, View view, int position, long id)
- void onNothingSelected(AdapterView<?> parent)

예제 야구선수 선택

spinner_test.java

main.xml

array.xml



오후-
cl컴파일러 return address 의 위치 

처리과정은 ASM 으로  test함수를 호출하면 서브루틴에서
push esp
mov esp, ebp(esp를 ebp에 넣는다.) 처리된다.

*붉은 색 선이 return Address
main 에서 선언한 변수 100(16진수 0x64)위의 주소들 중에서 main함수의 주소값과 비슷한 값을 가진 것이 return Address이다.
 


정상적인 실행결과

리눅스에서 무조건 변수에 +2 를 하게되면 return Adderss를 찾게 되는데 이유는 변수를 선언할때 차례대로 변수가 쌓이기 떄문이다.
하지만 윈도우에서는 선언한대로 쌓이지 않고 값이 자꾸 바뀌기 때문에 return Address를 찾으려한다면 메모리를 일일이 찾아봐야하는
번거로움이 있다.


728x90