Android 개발 의 ListView,GridView 상세 설명 및 예시 코드
1.ListView 의 Android 개발 실례
ListView 는 안 드 로 이 드 개발 에서 가장 많이 사용 되 는 컨트롤 중 하나 입 니 다.일반적으로 구성 목록 은 세 가지 요 소 를 포함 합 니 다.ListView:목록 을 보 여 주 는 보기,Adapter:데이터 와 보기 가 연 결 된 교량,Data:구체 적 인 데 이 터 는 문자열,그림 또는 컨트롤 을 포함 합 니 다.
어댑터 는 일반적으로 다음 과 같은 몇 가지 유형 이 있 습 니 다.
Array Adapter:Android 에서 가장 간단 한 어댑터 로 목록 컨트롤 에 사 용 됩 니 다.한 줄 의 데이터 만 표시 합 니 다.
Simple Adapter:이 어댑터 는 가장 좋 은 확장 성 을 가지 고 있 으 며 다양한 효 과 를 사용자 정의 할 수 있 습 니 다.정적 데이터 로 목록 을 채 웁 니 다.
CursorAdapter:커서 를 통 해 목록 에 데 이 터 를 제공 합 니 다.
resourceCursorAdapter:이 어댑터 는 CursorAdapter 를 확장 하여 자원 에서 보 기 를 만 드 는 방법 을 알 고 있 습 니 다.
Simple CursorAdapter:이 어댑터 는 리 소스 CursorAdapter 를 확장 하여 커서 에서 열 을 얻어 TextView/ImageView 보 기 를 만 듭 니 다.다음 주소록 을 가 져 오 는 예제:
XML/HTML 코드
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/bg"
>
<ListView
android:id="@+id/contacts_list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
</ListView>
</LinearLayout>
자바 코드
package net.csdn.blog.androidtoast;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import android.app.Activity;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Toast;
public class MainActivity extends Activity {
ListView mListView;
ArrayList<Map<String, String>> listData;
static final String NAME = "name";
static final String NUMBER = "number";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
getContacts();
}
/**
*
*/
private void getContacts() {
mListView=(ListView) findViewById(R.id.contacts_list);
listData = new ArrayList<Map<String, String>>();
// Cursor
Cursor cur=getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
startManagingCursor(cur);
while (cur.moveToNext()) {
Map<String, String> mp = new HashMap<String, String>();
long id = cur.getLong(cur.getColumnIndex("_id"));
Cursor pcur = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=" + Long.toString(id), null, null);
//
String phoneNumbers = "";
while (pcur.moveToNext()) {
String strPhoneNumber = pcur.getString(pcur.getColumnIndex(
ContactsContract.CommonDataKinds.Phone.NUMBER));
phoneNumbers += strPhoneNumber + ":";
}
phoneNumbers += "
";
pcur.close();
String name = cur.getString(cur.getColumnIndex("display_name"));
mp.put(NAME, name);
mp.put(NUMBER, phoneNumbers);
listData.add(mp);
}
cur.close();
//
ListAdapter adapter = new SimpleAdapter(this, listData, android.R.layout.simple_list_item_2,
new String[]{NAME, NUMBER},
new int[] {android.R.id.text1, android.R.id.text2});
mListView.setAdapter(adapter);
// listView
mListView.setOnItemSelectedListener(new ListView.OnItemSelectedListener(){
@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
Toast.makeText(getApplicationContext(), " :"+Long.toString(parent.getSelectedItemId()+1), 1).show();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
// TODO Auto-generated method stub
}
});
}
}
2.GridView 의 Android 개발 실례
GridView 격자 보 기 는 여러 줄 의 다 중 열 을 표시 하 는 데 사 용 됩 니 다.직접 예시:
XML/HTML 코드
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/bg"
>
<GridView
android:id="@+id/gridview"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:numColumns="3"/>
</LinearLayout>
XML/HTML
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:scrollbars="vertical">
<ImageView
android:layout_height="100dip"
android:id="@+id/ItemImage"
android:layout_width="80dip"
android:src="@drawable/png1"
android:layout_gravity="center_horizontal"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:id="@+id/ItemText" />
</LinearLayout>
자바 코드
package net.csdn.blog.androidtoast;
import java.util.ArrayList;
import java.util.HashMap;
import android.app.Activity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.GridView;
import android.widget.SimpleAdapter;
import android.widget.Toast;
public class MainActivity extends Activity {
/** Called when the activity is first created. */
//
private int[] mImages={
R.drawable.png1,
R.drawable.png2,
R.drawable.png3,
R.drawable.png4,
R.drawable.png5,
R.drawable.png6,
R.drawable.png7,
R.drawable.png8,
R.drawable.png9
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// GridView
GridView mGridView=(GridView) findViewById(R.id.gridview);
// ,
ArrayList<HashMap<String, Object>> lstImageItem = new ArrayList<HashMap<String, Object>>();
for (int i = 0; i < 9; i++) {
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("ItemImage", mImages[i]);// ID
map.put("ItemText", "NO." + String.valueOf(i+1));// ItemText
lstImageItem.add(map);
}
//
SimpleAdapter simple = new SimpleAdapter(this, lstImageItem, R.layout.gridviewitem,
new String[] { "ItemImage", "ItemText" }, new int[] {R.id.ItemImage, R.id.ItemText });
mGridView.setAdapter(simple);
//
mGridView.setOnItemClickListener(new GridView.OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Toast toast=Toast.makeText(getApplicationContext(), " "+(position+1)+" ", 1);
toast.setGravity(Gravity.BOTTOM, 0, 0);
toast.show();
}
});
}
}
이 두 개의 안 드 로 이 드 개발 실례 를 보고 여러분 들 이 ListView,GridView 의 사용 에 대해 어느 정도 파악 하 셨 을 것 이 라 고 믿 습 니 다.그것들 과 Adapter 를 이용 하여 더 많은 기능 을 실현 해 보 세 요.
이상 은 안 드 로 이 드 ListView 와 GridView 에 대한 자 료 를 정리 하고 관련 자 료 를 계속 보충 하 는 것 입 니 다.본 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Bitrise에서 배포 어플리케이션 설정 테스트하기이 글은 Bitrise 광고 달력의 23일째 글입니다. 자체 또는 당사 등에서 Bitrise 구축 서비스를 사용합니다. 그나저나 며칠 전 Bitrise User Group Meetup #3에서 아래 슬라이드를 발표했...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.