안드로이드 개발 질문/답변
(글 수 45,052)
package com.anrocud.loadcontacts;
import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.view.View;
import android.widget.Button;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
public class LoadContacts extends Activity {
private Cursor m_cPhoneCursor;
/** 주소록 정보를 가지고 있는 커서 얻기 */
private Cursor getCursor() {
// 주소록이 저장된 URI
Uri uContactsUri = ContactsContract.CommonDataKinds.Phone.CONTENT_URI;
// 주소록의 이름과 전화번호의 열 이름
String[] strProjection = {
ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,
ContactsContract.CommonDataKinds.Phone.DATA1
};
// 주소록을 얻기 위한 쿼리문을 날리고 커서를 리턴
return getContentResolver().query(uContactsUri, null, null, null, strProjection[0]);
}
/** 주소록 정보를 가지고 있는 커서 닫기 */
@Override
protected void onDestroy() {
m_cPhoneCursor.close();
super.onDestroy();
}
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
m_cPhoneCursor = getCursor();
ListAdapter sPhoneAdapter = getAdapter();
ListView contactsListView = (ListView)findViewById(R.id.ContactsListView);
contactsListView.setAdapter(sPhoneAdapter);
contactsListView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
findViewById(R.id.save).setOnClickListener(mClickListener);
findViewById(R.id.cancle).setOnClickListener(mClickListener);
}
/** 주소록을 표시해 주기위한 커서 어뎁터 얻기 */
private ListAdapter getAdapter() {
int iLayoutID = android.R.layout.simple_list_item_multiple_choice;
int[] iTextViewID = new int[] {
android.R.id.text1,
android.R.id.text2
};
String[] strProjection = {
ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,
ContactsContract.CommonDataKinds.Phone.DATA1
};
return new SimpleCursorAdapter(this, iLayoutID, m_cPhoneCursor, strProjection, iTextViewID);
}
Button.OnClickListener mClickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch(v.getId()) {
case R.id.save:
// 여기에 리스트뷰 항목 저장하는 코드입력
break;
case R.id.cancle:
Intent intent = new Intent(LoadContacts.this, List.class);
startActivity(intent);
break;
}
}
};
}
제가 전화번호부를 불러와서 리스트뷰에 체크박스와함께 표시햇습니다.
그리고 밑에 확인버튼을 두고 확인버튼을 누르면 체크한 항목들을 다른 리스트뷰에 따로 보여주는 프로그램을 만드는데요.
전화번호부를 불러와서 리스트뷰에 표시해주는데까지했는데,
여기서 확인버튼을 클릭하면 체크박스에 체크한 항목을 다른 리스트뷰에 표시해주는거는 어떻게 짜야할지 감이 잘 안와서요....
아이템을 어떻게 받아와서 저장해야하는지 좀 알려주시면 감사하겟습니다~~~




방법은 여러가지 입니다.
간편 예제 입니다.
ArrayList<Long> idArray = new idArray<Long>();
idArray.clear();
idArray.add(contact id);
Intent intent = new Intent (this, list.class)
intent.putExtra("Key_VALUE",idArray);
받는 class
getIntent().getLongArrayExtra("Key_VALUE");