달력

12

« 2019/12 »

  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  •  
  •  
  •  
  •  

baseAdapter추상클래스를 상속받아 추상메소드를 재정의하여 GridView에 출력하기

   

   

강의 내용

activity_main.xml

RelativeLayout변경

Graphical Layout > Composite-GridView 추가

MainActivity.java

//이미지 추가

//추상 클래스 BaseAdapter를 상속하여 GridView에 이미지를 보여줄 수 있는 기능 구현하는 내부 클래스 구현

-ImageAdapter 내부 클래스 정의

-추상메소드 재정의

//GridView에 이미지를 보여주기 위해 ImageAdapter객체를 등록

  

\res\drawable-mdpi

국가이미지 추가

   

추상메소드

getCount()

전체 데이터의 개수 반환

getItem()

전달된 포지션값에 해당하는 데이터 반환

getItemId

포시션값 반환

getView()

실제 데이터 반환 (아이템으로 보여질 뷰 객체 리턴)

   

   

 

   

출력 결과

   

   

Posted by codedragon codedragon

댓글을 달아 주세요

배열 데이터를 GridView에 표시하기

   

   

강의 내용

activity_main.xml

RelativeLayout변경

Graphical Layout > Form Widgets-TextView 추가

Graphical Layout > Composite-GridView 추가

MainActivity.java

implements AdapterView.OnItemSelectedListener

//배열 생성

//배열을 이용하는 adapter객체 생성

//GridView에 ArrayAdapter등록

//이벤트소스와 이벤트 리스너 연결

//이벤트 핸들러 재정의

-onItemClick

   

   

 

   

출력 결과

   

   

   

Posted by codedragon codedragon

댓글을 달아 주세요

   

GridView

  • 뷰 객체들을 고정된 개수의 열들로 이루어진 격자(grid)형태로 배치시킵니다.
  • 격자의 각 칸에 이미지 아이콘이 배치되는 경우가 많습니다.
  • 사용자는 한 항목을 선택해서 일정한 작업을 수행할 수 있습니다.
  • 리스트뷰나 스피너는 1차원적인 데이터를 표시하지만 그리드뷰는 행과 열이 있는 2차원적인 데이터를 보여줍니다.

 

<LinearLayout

xmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

>

<TextView

android:id="@+id/selection"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

/>

<GridView

android:id="@+id/grid"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:verticalSpacing="35dp"

android:horizontalSpacing="5dp"

android:numColumns="auto_fit"

android:columnWidth="100dp"

android:stretchMode="spacingWidth"

android:gravity="center"

android:drawSelectorOnTop="false"

/>

</LinearLayout>

 

public class GridDemo extends Activity

implements AdapterView.OnItemClickListener {

TextView selection;

String[] items={"서울", "부산", "대구", "광주", "강릉"};

 

@Override

public void onCreate(Bundle icicle) {

super.onCreate(icicle);

setContentView(R.layout.main);

selection=(TextView)findViewById(R.id.selection);

 

GridView g=(GridView) findViewById(R.id.grid);

g.setAdapter(new FunnyLookingAdapter(this,

android.R.layout.simple_list_item_1,items));

g.setOnItemClickListener(this);

}

 

public void onItemClick(AdapterView<?> adapter, View v, int position, long id) {

selection.setText(items[position]);

 

}

private class FunnyLookingAdapter extends ArrayAdapter<String> {

Context ctxt;

 

FunnyLookingAdapter(Context ctxt, int resource,

String[] items) {

super(ctxt, resource, items);

 

this.ctxt=ctxt;

}

public View getView(int position, View convertView, ViewGroup parent) {

TextView label=(TextView)convertView;

 

if (convertView==null) {

convertView=new TextView(ctxt);

label=(TextView)convertView;

}

 

label.setText(items[position]);

 

return convertView;

}

}

}

 

 

Posted by codedragon codedragon

댓글을 달아 주세요

선택 위젯(Selection Widget)

  • 여러 개의 아이템 중에 하나를 선택할 수 있는 위젯.
  • 일반위젯과 다르게 선택 위젯은 어댑터를 사용하므로 직접 위젯에 데이터를 설정할 수 없습니다.
  • 어댑터에서 만들어주는 뷰를 이용해 ListView의 한 아이템으로 보여주는 방식입니다.

   

   

어댑터(Adapter)

  • 여러 개의 항목중에서 하나를 선택해야 하는 선택 위젯은 어댑터를 사용해 합니다.
  • 데이터는 직접 위젯에 설정되지 않고 어댑터를 설정해서 선택위젯에 표시되게 됩니다.

   

   

어댑터뷰

  • 자식 뷰들과 그것들을 관리하는 어댑터를 갖는 뷰
  • 리스트 형식으로 자식 뷰들을 배치하는 뷰들은 어댑터 뷰라는 특성
  • 모든 어댑터 뷰들은 ViewGroup 클래스와 AdapterView 클래스를 상속
  • 모든 어댑터 뷰에는 어댑터 패턴(adapter pattern)이라는 디자인 패턴(design pattern)이 적용되어 있습니다.
  • AdapterView는 ViewGroup을 상속받으며 어댑터(adapter)라는 객체를 갖는다는 점특징입니다. 어댑터는 어댑터 뷰와 자식 뷰들 사이를 이어주는 중간 역할을 하게 됩니다. 어댑터는 자식 뷰들을 정의하고, 어댑터 뷰는 어댑터를 통해 이들에 접근할 수 있습니다.

   

   

어댑터뷰(AdapterView) 계층도

   

AbsListView

리스트 형식으로 자식 뷰들을 보여주는 어댑터 뷰들의 공통점들을 정의한 추상 클래스입니다.

ExpandableListView

ListView를 상속 받습니다. 이것은 확장 가능한 항목을 리스트에 추가할 수 있다는 기능이 추가되었습니다.

Spinner

사용자가 터치하면 별도의 자식 뷰 오픈하여 리스트를 보여줍니다. 이 자식 뷰들을 위 또는 아래로 회전시킬 수 있습니다.

Gallery

자식 뷰을 가로로 나열하고, 사용자는 나열된 항목들을 왼쪽이나 오른쪽으로 회전시킬 수 있습니다.

   

   

어댑터뷰 패턴 도식도

  • 선택위젯은 어댑터를 통해 데이터를 설정합니다.
  • 어댑터에서 만들어주는 뷰를 이용해 ListView의 한 아이템을 보여주게 됩니다.

   

   

   

선택 위젯 종류

ListView

뷰 객체들을 수직 방향의 목록 형태로 보여줍니다.

Spinner

드롭다운 선택 기능을 구현한 클래스

GridView

뷰 객체들을 고정된 개수의 열들로 이루어진 격자(grid)형태로 배치시킵니다.

Gallery

진열, 전시형식으로 선택 아이템을 보여줍니다.

AutoCompleteTextView

입력 필드에 글자를 입력하면 해당 글자의 자동 완성된 리스트를 보여줍니다.

   

   

   

   

   

   

   

   

   

 

AutoCompleteTextView

  • 입력 필드에 글자를 입력하면 해당 글자의 자동 완성된 리스트를 보여줍니다.

   

속성

문자열,리소드 ID

의미

android:completionHint

 

드롭다운 목록 아래에 표시될 도움말

android:completionThreshold

 

자동 완성 드롭다운 목록이 언제 표시될 것인지를 결정. 1은 한 글자만 입력, 2는 두 글자부터

 

Posted by codedragon codedragon

댓글을 달아 주세요