Android 컨트롤 ListView 사용법(연락처 예제 코드 읽기)

예제 코드: 이것은 연락처를 읽는 코드입니다
 
package com.ui.domain;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.database.Cursor;
import android.database.DataSetObserver;
import android.graphics.Color;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;
import android.widget.ListAdapter;
import android.widget.ListView;
public class CallPhone extends Activity {



@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.call_phone);
//
final List<String> dataList=new ArrayList<String>();
//
Cursor cur = getContentResolver().query(
ContactsContract.Contacts.CONTENT_URI,
null,
null,
null,
ContactsContract.Contacts.DISPLAY_NAME
+ " COLLATE LOCALIZED ASC");
while (cur.moveToNext()) {
int idColumn = cur.getColumnIndex(ContactsContract.Contacts._ID);
int displayNameColumn = cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME);
String phoneNumber=cur.getString(1);
String disPlayName = cur.getString(displayNameColumn);
dataList.add(disPlayName+":"+phoneNumber);
Log.i(" :", disPlayName);
}
cur.close();//

ListView listView=(ListView)findViewById(R.id.listView1);
listView.setAdapter(new ListAdapter() {

@Override
public void unregisterDataSetObserver(DataSetObserver paramDataSetObserver) {
// TODO Auto-generated method stub

}

@Override
public void registerDataSetObserver(DataSetObserver paramDataSetObserver) {
// TODO Auto-generated method stub

}

@Override
public boolean isEmpty() {
// TODO Auto-generated method stub
return false;
}

@Override
public boolean hasStableIds() {
// TODO Auto-generated method stub
return false;
}

@Override
public int getViewTypeCount() {
// TODO Auto-generated method stub
return dataList.size();
}

@Override
public View getView(int paramInt, View paramView, ViewGroup paramViewGroup) {
// TODO Auto-generated method stub
EditText text=new EditText(CallPhone.this);
text.setBackgroundColor(Color.WHITE);
text.setText(dataList.get(paramInt));
return text;
}

@Override
public int getItemViewType(int paramInt) {
// TODO Auto-generated method stub
return 0;
}

@Override
public long getItemId(int paramInt) {
// TODO Auto-generated method stub
return 0;
}

@Override
public Object getItem(int paramInt) {
// TODO Auto-generated method stub
return dataList.get(paramInt);
}

@Override
public int getCount() {
// TODO Auto-generated method stub
return dataList.size();
}

@Override
public boolean isEnabled(int paramInt) {
// TODO Auto-generated method stub
return false;
}

@Override
public boolean areAllItemsEnabled() {
// TODO Auto-generated method stub
return false;
}
});



}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
getMenuInflater().inflate(R.menu.call_phone, menu);
return true;
}

}
이listView에는 setAdapter 어댑터가 있는데 인터페이스를 직접 실현하거나 클래스를 작성하여 실현할 수 있습니다
 
ListAdapter
이 인터페이스
 
listView.setAdapter
list 집합을 String 인터페이스로 정의하는 방법:
 
@Override
public Object getItem(int paramInt) {
// TODO Auto-generated method stub
return dataList.get(paramInt);
}
return은list의 데이터를 되돌려주는 param Int입니다. 이것은 색인 번호로 직접list를 찾습니다.get (인덱스) 이렇게 하면 됩니다. 상기 몇 가지 방법을 주의해야 합니다. 만약list! >1 잘못 보고합니다.

좋은 웹페이지 즐겨찾기