0

내 앱에서 자동 완성 텍스트 뷰로 이메일 주소를 채워야합니다. 콘텐츠 확인자를 사용하여 커서에서 이메일 ID를 받았습니다. 이제 커서에서 전자 메일 ID를 채우기위한 자동 완성 textview에 대한 커서 어댑터를 구현해야합니다. 다음 코드를 시도했지만 커서 ID에서 전자 메일 ID를로드하지 않았습니다. 다음과 같이커서 어댑터가 android에서 autocomplete textview를 구현했습니다.

내 커서 어댑터 클래스는 다음과 같습니다

public class AutoEmailAdapter extends CursorAdapter{ 
private LayoutInflater inflater; 

public AutoEmailAdapter(Context context, Cursor c) { 
    super(context, c); 
    inflater = LayoutInflater.from(context); 
    Log.e("adapter", "18"); 
} 

@Override 
public void bindView(View view, Context context, Cursor cursor) { 
    Log.e("","bindview"); 
    String t = cursor.getString(1); 
    Log.e("adapter @ 23", t); 
    ((TextView) view).setText(t); 
} 

@Override 
public View newView(Context context, Cursor cursor, ViewGroup parent) { 
    Log.e("","newview"); 
    inflater = LayoutInflater.from(context); 
    final TextView view = (TextView) inflater.inflate(android.R.layout.simple_dropdown_item_1line, parent, false); 
    String te = cursor.getString(1); 
    Log.e("@33",te); 
    view.setText(te); 
    return view; 
} 

@Override 
public String convertToString(Cursor cursor) { 
    Log.e("","convertTostring"); 
    return cursor.getString(1); 
} 

} 

안드로이드 생성자를 넘어 가지 않습니다. bindView, newView 및 convertToString 메소드가 호출되지 않았습니다. 내 메인 클래스의

나는 다음과 같은 방법으로 어댑터 클래스라고 :

AutoEmailAdapter adapter = new AutoEmailAdapter(MainActivity.this, cursor_emailIds); 
    emailId.setAdapter(adapter); 

내 코드가 자동 완성 텍스트 뷰에 이메일을로드하지 않는 이유를 모르겠어요. 도와주세요.

+0

귀하의 newView가 단순하게 팽창 된 것을 감안할 때, 대신 ResourceCursorAdapter를 확장하지 않으시겠습니까? – njzk2

+0

자세히 설명해 주시겠습니까? –

+0

ResourceCursorAdapter를 확인하십시오. 그것은 당신을 위해 팽창하지 않습니다, 기본적으로 당신은 newView를 제거하고 bindView 만 유지할 수 있습니다 (그러나 당신의 질문에 대답하지 않습니다) – njzk2

답변

1

감사합니다 모두 내가 리소스 커서 어댑터를 사용하여 해결했습니다.

관련 문제