데이터와 리스트뷰를 연결할 어댑터를 생성할 때 두 가지 방법이 있는데 그 중 한개가
1번의 생성자 형태는 ArrayAdapter (Context context, int textViewResourceId, T[] objects);
다른 하나가 ArrayAdapter<String>(Context context, int textViewResourceId, List<String> objects) 요런 생성자를 가지고 있다.
우선 2번을 구현한 코드는 아래와 같다.
메인 레이아웃을 아래와 같이 만들어 둔다. 리스트 퓨 가 하나이고 통째로 다 사용한다.
파일이름 : mugrn_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ListView
android:id="@+id/mainmenulist"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
</LinearLayout>
구현 코드는 아래와 같다.
private ListView _listview;
private String[] items = { "악기와 음색", "음이름", "음표", "박자표", "셈여림", "당김음",
"악보형식", "셈여림표", "연주법", "악보의 이동" };
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.mugen_main);
_listview = (ListView)findViewById(R.id.mainmenulist);
_listview.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, items));
_listview.setOnItemClickListener(onItemClickListener);
}
//아래가 리스너로 리스트 항목 클릭시 나타나는 액티비트들을 호출한다.
private OnItemClickListener onItemClickListener = new AdapterView.OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> parent, View v, int position, long id)
{
if(position == 0){
Intent intent = new Intent(MugenMainActivity.this, Base009.class);
startActivity(intent);
}
if(position == 1){
Intent intent = new Intent(MugenMainActivity.this, Base000.class);
startActivity(intent);
}
if(position == 2){
Intent intent = new Intent(MugenMainActivity.this, Base001.class);
startActivity(intent);
}
if(position == 3){
Intent intent = new Intent(MugenMainActivity.this, Base002.class);
startActivity(intent);
}
if(position == 4){
Intent intent = new Intent(MugenMainActivity.this, Base003.class);
startActivity(intent);
}
if(position == 5){
Intent intent = new Intent(MugenMainActivity.this, Base004.class);
startActivity(intent);
}
if(position == 6){
Intent intent = new Intent(MugenMainActivity.this, Base005.class);
startActivity(intent);
}
if(position == 7){
Intent intent = new Intent(MugenMainActivity.this, Base006.class);
startActivity(intent);
}
if(position == 8){
Intent intent = new Intent(MugenMainActivity.this, Base007.class);
startActivity(intent);
}
if(position == 9){
Intent intent = new Intent(MugenMainActivity.this, Base008.class);
startActivity(intent);
}
}
};
}
1번을 구현하는 다른 코드는 아래와 같다. 틀린점은 어댑터로 공급될 데이터 원본을 만들어주는 방법차이. 여기서는 데이터 컬렉션을 만들어 넣어주는 방법이고, 위의 방법은 단순히 배열을 넣어주는 방법.
ArrayList<String> arGeneral;
arGeneral = new ArrayList<String>();
arGeneral.add("음이름");
arGeneral.add("음표");
arGeneral.add("박자표");
arGeneral.add("셈여림");
arGeneral.add("당김음");
arGeneral.add("악보형식");
arGeneral.add("셈여림표");
arGeneral.add("연주법");
arGeneral.add("악보의 이동");
arGeneral.add("다양한 음색");
ArrayAdapter<String> Adapter;
Adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, arGeneral);
setListAdapter(Adapter);
나머지는 동일하다.
구현방법을 여러가지로 알아두는게 개발시간을 단축하는것이 아닐까.
'개발자 > Android' 카테고리의 다른 글
| 안드로이드 리스트뷰에 사전식 인덱스를 Seekbar 로 구현하기 (0) | 2013.01.07 |
|---|---|
| 잘 만든 midi 파일 생성 프로그램과 미디파일 분석 문서 (5) | 2013.01.03 |
| 안드로이드에서 쓸 수 있는 핵심 제스처 설명 (0) | 2012.12.17 |
| 상대 레이아웃을 사용하여 이미지와 텍스트로 안드로이드 버튼 만들기 (0) | 2012.12.13 |
| [Accessibility] Missing contentDescription attribute on image 경고 (0) | 2012.12.10 |
| 안드로이드 작업 폴더에 .bak 파일 있으면 에러나요~ (0) | 2012.12.10 |
| RGB 16진수 색상표 (0) | 2012.12.07 |
| 옵션메뉴 같은 각 액티비티에 공통인 코드 처리 방법 (0) | 2012.12.05 |
취업, 창업의 막막함, 외주 관리, 제품 부재!
당신의 고민은 무엇입니까? 현실과 동떨어진 교육, 실패만 반복하는 외주 계약,
아이디어는 있지만 구현할 기술이 없는 막막함.
우리는 알고 있습니다. 문제의 원인은 '명확한 학습, 실전 경험과 신뢰할 수 있는 기술력의 부재'에서 시작됩니다.
이제 고민을 멈추고, 캐어랩을 만나세요!
코딩(펌웨어), 전자부품과 디지털 회로설계, PCB 설계 제작, 고객(시장/수출) 발굴과 마케팅 전략으로 당신을 지원합니다.
제품 설계의 고수는 성공이 만든 게 아니라 실패가 만듭니다. 아이디어를 양산 가능한 제품으로!
귀사의 제품을 만드세요. 교육과 개발 실적으로 신뢰할 수 있는 파트너를 확보하세요.
캐어랩