2013-03-24 5 views
0

다음 코드를 사용하여 연락처의 이름과 해당 확인란의 listview를 채 웁니다.listview 및 연락처를 사용하여 로컬 연락처 목록을 만드는 방법은 무엇입니까?

현재 코드는 전체 목록을 로그에 저장합니다.

목록에서 선택한 연락처를 가져 와서 다른 활동의 앱에서 사용할 수 있도록 로컬로 저장하려고합니다.

몇 가지 안내를 제공해 주시겠습니까?

나는 여기 안드로이드 문서뿐만 아니라 수많은 게시물을 보았다. 나는이 문제에 대해 당신의 친절한 도움을 구합니다.

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    this.requestWindowFeature(Window.FEATURE_NO_TITLE); 

    setContentView(R.layout.nominatecontactsactivitytest); 

    this.getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); 
    this.getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); 

    Cursor cursor = managedQuery(ContactsContract.Contacts.CONTENT_URI,null, null, null, null); 
    startManagingCursor(cursor); 
    String[] columns = new String[] { ContactsContract.Contacts.DISPLAY_NAME}; 

    int[] to = new int[] { android.R.id.text1 }; 

    SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_multiple_choice, cursor, columns, to); 
    this.setListAdapter(adapter); 

    Button finishButton = (Button) this.findViewById(R.id.finishButton); 
    finishButton.setOnClickListener(new OnClickListener() { 

     public void onClick(View v) { 
      SimpleCursorAdapter adapter = (SimpleCursorAdapter) nominateContactsActivity.this.getListAdapter(); 
      Cursor cursor = adapter.getCursor(); 

      cursor = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,null,null, null); 
      ListView lv = nominateContactsActivity.this.getListView(); 
      SparseBooleanArray selectedItems = lv.getCheckedItemPositions(); 

      for (int i = 0; i < selectedItems.size(); i++) { 
       int selectedPosition = selectedItems.keyAt(i); 
       cursor.moveToPosition(selectedPosition); 

       strName=cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)); 
       strTelNo = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));              
       Log.d("NAME: ",strName); 
       Log.d("NUM: ", strTelNo); 

       }cursor.close(); 
      } 
     }); 
    } 

고맙습니다.

편집 :

좋아, 내가 접촉의 직렬화 된 배열을 저장 된 SharedPreferences를 사용합니다.

아직 실제로이 배열을 생성하는 문제에 직면 해 있습니다. 아무도 도와 줄 수 없습니까?

답변

0

응용 프로그램을 통해 데이터를 공유하는 가장 좋은 방법은 모든 데이터가 포함 된 싱글 톤을 사용하는 것입니다. 여기에 좋은 튜토리얼은 다음과 같습니다

http://www.roseindia.net/java/beginners/SingletonPattern.shtml

앱의 출시와 지속성하려는 경우도 된 SharedPreferences를 사용할 수 있습니다

http://developer.android.com/reference/android/content/SharedPreferences.html

+0

미안 내가 당신을 오해했다고 생각 - 내가 주를 의미 내 응용 프로그램 내 활동과 다른 * 활동 * 데이터. 제안 해 주셔서 감사합니다. – user1593869

+0

답변이 업데이트되었습니다. – Aerilys

+0

이미 특정 항목에 대해 sharedpreferences를 사용하고 있지만이 이름과 숫자로 배열 (또는 다른 객체)을 저장하는 데 적합한 옵션입니까? sharedpreferences가 단순한 이름 값 쌍에 대해서만 사용되지 않습니까? – user1593869