2014-02-27 2 views
1

나는 공황 앱을하고 에 사용자가 여러 연락처를 추가 할 수 있도록하고 그/그녀가 원하는 때마다 연락처로 버튼을 추가 에 탭을 수행하여 글고 치기로 선택한 연락처를 표시하고 더하다. 이런 식으로 뭔가를 얻기글고 제한 개까지 5 연락처 만

글고에서

는 : 9867XXXXXX, 9866XXXXXX, ...

변화는 내가 필요합니다

제한5 연락처 내가 아는 유일한

개까지 EditText에서 문자 길이를 제한하는 방법은 없지만 5 개의 연락처 만 제한하는 방법을 모르는 경우

 private Button btnAddContacts ; 
    private EditText editContacts 

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

      @Override 
      public void onClick(View arg0) { 
       // TODO Auto-generated method stub 
       Intent it= new Intent(Intent.ACTION_GET_CONTENT); 
       it.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE); 
       startActivityForResult(it, 1); 
      } 
     }); 

     @Override 
     protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
      if (data != null) { 
      Uri uri = data.getData(); 

      if (uri != null) { 
      Cursor c = null; 
      try { 
      c = getContentResolver().query(uri, new String[]{ 
      ContactsContract.CommonDataKinds.Phone.NUMBER, 
      ContactsContract.CommonDataKinds.Phone.TYPE }, 
      null, null, null); 

      if (c != null && c.moveToFirst()) { 
       String number = c.getString(0); 
       int type = c.getInt(1); 
       showSelectedNumber(type, number); 
       } 
       } finally { 
      if (c != null) { 
       c.close(); 
      } 
      } 
     } 
     } 
    } 

     public void showSelectedNumber(int type, String number) { 

      if(editContacts != null && editContacts.getText().toString().length()==0) 
       editContacts.setText(number); 
      else 
       if(editContacts != null) editContacts.append(","+number); 

     } 
+0

플래그가 'onActivityResult'를 사용하면 5에 도달하면 더 이상 변경/저장을 취소 할 수 있습니다. 적절한 메시지를 보여주십시오. –

+0

@VikalpPatel 나는 EditText에서 글자 길이를 제한하는 방법을 알고 있지만 연락처를 제한하는 방법을 모릅니다. – SunnyLoveU

+1

'변경 필요'에서 한 질문 만 게시하여 여러 질문을 한 것처럼 보입니다. 그것은 또한 그것을 너무 넓게 만든다. 특히 ** database **의 경우에는 다른 질문을하십시오. – DroidDev

답변

1

당신은 플래그 maxNoContacts

발췌문 말을 사용할 수 있습니다

public YourActivity extends Activity 
{ 
int maxNoContacts = 0; 

public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState) 
    ... 
    btnAddContacts.setOnClickListener(new OnClickListener() { 

    @Override 
    public void onClick(View arg0) { 
     // TODO Auto-generated method stub 
    if(maxNoContacts <5) 
     { 
     Intent it= new Intent(Intent.ACTION_GET_CONTENT); 
     it.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE); 
     startActivityForResult(it, 1); 
     } 
    else 
     { 
       //show toast saying you added maximum no of contacts. 
     } 

    } 
    }); 
} 

// 업데이트 maxNoContacts 연락처가 제대로 가져온 경우.

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (data != null) { 
    Uri uri = data.getData(); 

    if (uri != null) { 
    Cursor c = null; 
    try { 

    c = getContentResolver().query(uri, new String[]{ 
    ContactsContract.CommonDataKinds.Phone.NUMBER, 
    ContactsContract.CommonDataKinds.Phone.TYPE }, 
    null, null, null); 

    if (c != null && c.moveToFirst()) { 
     String number = c.getString(0); 
     int type = c.getInt(1); 

     maxNoContacts++; //Increment maxNoContacts if it fetches contact properly.   

     showSelectedNumber(type, number); 
     } 
     } finally { 
    if (c != null) { 
     c.close(); 
    } 
    } 
    } 
} 
} 



} 
+0

감사합니다 ... :) 그리고 중복 된 숫자의 선택을 제어하는 ​​방법을 알고 있습니까? – SunnyLoveU

+0

@SunnyLoveU : 여러 가지 방법으로 중복 처리를 수행 할 수 있습니다. 내가 선택한 상점을 사용하는 것이 좋습니다. 배열 및 인출 된 배열로 확인하십시오. :) –

+0

감사합니다 :) 다시 형제 – SunnyLoveU