어댑터 뷰

화면에 동적으로 변경되는 컨텐츠를 채울 때 사용하는 뷰

리스트 뷰

항목들을 수직 방향의 목록 형태로 보여주는 어댑터 뷰 - 상하 스크롤 가능 - 일반적으로 목록의 한 항목을 선택하여 일정한 작업 수행

생성 방법1 - element

  1. 레이아웃 파일에 ListView element 를 선언한다.

  2. 액티비티 파일에 어댑터를 생성한다.

  3. 생성한 어댑터를 레이아웃 파일에 선언한 ListView 리소스와 연결시킨다.

public class MainActivity extends AppCompatActivity {
  private ListView m_ListView;
  private ArrayAdapter<String> m_Adapter;
 
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
 
    String[] values = {"String1", "String2", "String3"};
 
    m_Adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, values);
 
    m_ListView = (ListView)findViewById(R.id.list);
 
    m_ListView.setAdapter(m_Adapter);
 
    m_ListView.setOnItemClickListener(onClickListItem);
  }
 
  private AdapterView.OnItemClickListener onClickListItem = new AdapterView.OnItemClickListener() {
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
      Toast.makeText(getApplicationContext(), m_Adapter.getItem(position), Toast.LENGTH_SHORT).show();
    }
  };
}

ListView 아이템 터치시 이벤트를 처리할 리스너를 구현해야 한다.

private AdapterView.OnItemClickListener onClickListItem = new AdapterView.OnItemClickListener() {
 
  @Override
  public void onItemClick<AdapterView<?> parent, View view, int position, long id) {
    Toast.makeText(getApplicationContext(), m_Adapter.getItem(position), Toast.LENGTH_SHORT).show();
  }
};

생성 방법2 - ListActivity 상속

  1. 액티비티에 ListActivity를 상속 받는다.

  2. 어댑터를 생성한다.

  3. setListAdapter 라는 ListActivity에 선언한 함수를 사용하여 어댑터를 액티비티에 설정한다.

public class MainActivity extends ListActivity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //setContentView(R.layout.activity_main);
 
        String[] values = {"하스스톤", "몬스터 헌터", "디아블로", "와우", "리니지", "안드로이드", "아이폰"};
 
        // Android에서 제공하는 표준 레이아웃에 String 문자열 하나를 출력하는 layout으로 어댑터 생성
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, values);
 
        // ListView에 어댑터 연결
        setListAdapter(adapter);
    }
 
    @Override
    protected void onListItemClick(ListView l, View view, int position, long id) {
        String item = (String)getListAdapter().getItem(position);
        Toast.makeText(getApplicationContext(), item + " selected", Toast.LENGTH_SHORT).show();
    }
}

직접 AdapterView의 리스너를 선언하여 구현 및 설정하였던 생성방법 1과 달리 ListActivity를 상속받게 되면 아래와 같은 함수를 사용할 수 있다.

setListAdapter(adapter);
 
@Override
protected void onListItemClick(ListView l, View view, int position, long id);

생성 방법 1과 달리 주의 깊게 봐야할?점은 아래의 코드 같다.

super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_main);


'IT > Android' 카테고리의 다른 글

Popup Menu 생성  (0) 2017.10.23
AlertDialog를 이용하여 RatingBar 띄우기  (0) 2017.10.23
Intent  (0) 2017.10.23
Action Bar  (0) 2017.10.23
Dialog  (0) 2017.10.23

+ Recent posts