Android 개발 의 ListView,GridView 상세 설명 및 예시 코드

ListView 와 GridView 는 Android 개발 에서 자주 사용 되 는 컨트롤 로 Adapter 와 함께 사용 하면 많은 인터페이스 효 과 를 실현 할 수 있 습 니 다.다음은 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 에 대한 자 료 를 정리 하고 관련 자 료 를 계속 보충 하 는 것 입 니 다.본 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기