연락처 전화 번호에 대해 내 edittext 필드 자동 완성을 사용하고 있습니다. 데이터베이스에서 연락처를 가져와 텍스트 필드에 표시하는 방법을 알고 있지만 사용자가 텍스트 필드에 이름을 입력하려고 할 때 자동 완성을해야합니다. 나는 자동 완성으로 배열을 얻는 방법과 그 뒤에있는 전체 이론을 이해한다. 하지만 전화 연락처에서 끌어 오기는 어렵습니다. 스택 오버플로에 대한 많은 자습서와 다양한 질문을 보았지만, 여전히 난처한 상황입니다. 코드 스 니펫이 도움이 될 것입니다.연락처 전화 번호로 자동 완성 텍스트 뷰 사용
public class MyContacts extends Activity {
AutoCompleteTextView txtPhoneNo;
public ArrayList<String> c_Name = new ArrayList<String>();
public ArrayList<String> c_Number = new ArrayList<String>();
String[] name_Val = null;
String[] phone_Val = null;
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
txtPhoneNo = (AutoCompleteTextView) findViewById(R.id.txtPhoneNo);
}
Uri contacts = Uri.parse("content://icc/adn");
ContentResolver cr = getContentResolver();
Cursor managedCursor1 = cr.query(contacts, null, null, null, null);
{
if (managedCursor1.moveToFirst()) {
String contactname;
String cphoneNumber;
int nameColumn = managedCursor1.getColumnIndex("name");
int phoneColumn = managedCursor1.getColumnIndex("number");
Log.d("int Name", Integer.toString(nameColumn));
Log.d("int Number", Integer.toString(phoneColumn));
do {
// Get the field values
contactname = managedCursor1.getString(nameColumn);
cphoneNumber = managedCursor1.getString(phoneColumn);
if ((contactname != " " || contactname != null)
&& (cphoneNumber != " " || cphoneNumber != null)) {
c_Name.add(contactname);
c_Number.add(cphoneNumber);
}
} while (managedCursor1.moveToNext());
}
name_Val = (String[]) c_Name.toArray(new String[c_Name.size()]);
phone_Val = (String[]) c_Number.toArray(new String[c_Name.size()]);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_dropdown_item_1line, name_Val);
txtPhoneNo.setAdapter(adapter);
}
}
내 코드 ... 오류를 컴파일하지 않습니다하지만 여전히
나는 무엇을하고 싶은가? – Richa
문자 메시지 –
당신의 문제를 해결했으면 안드로이드 폰의 표준 인 자동 완성 텍스트 뷰와 매우 비슷한 것이 있습니까? 해결하면 답을 게시하고 동의하십시오 ... – nKandel