2013-06-20 5 views
0

사용자 입력란에 autocompletetextview이 있으며 드롭 다운 메뉴가 채워집니다. 이 경우 사용자에게 특정 항목 이름이 사용되고 따라서 선택할 수 없음을 보여줍니다. 드롭 다운을 표시하고 싶지만 클릭 할 수 없도록 설정하고 싶습니다. 이것이 가능한가?AutoCompleteTextView 드롭 다운 클릭 가능하지 않음

이것은 관련이 없지만 온라인 데이터베이스에서 데이터를 검색합니다. 나는 기본적으로 단어 "Used: " + myString을 붙이고 그게 채워집니다.

편집 :

  ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(
        getApplicationContext(), R.layout.dialog_dropdown_list, 
        itemList); 

      etInsertAutoComplete.setAdapter(dataAdapter); 
+0

드롭 다운에 대한 어댑터의 모습을 표시 할 수 있습니까? – Varun

+0

@Varun은 요청 된 코드를 추가했습니다. – KickingLettuce

+1

'BaseAdapter'를 확장하고 메서드를 재정 의하여 클릭 할 수있는 항목을 선택할 수 있습니다.'areAllItemsEnabled()'를 재정의하고 false를 반환합니다. 또한이'public boolean isEnabled (int position)'을 오버라이드하고 필요에 따라'true/false'를 리턴합니다. – Varun

답변

1

내가 너무 늦게 이것에 대한 생각 answer.But이 당신을 도울 것입니다 알고 : 여기

는 어댑터입니다. 이를 위해 BaseAdapter를 확장하여 사용자 지정 어댑터를 구현해야합니다.

@Override 
    public Object getItem(int position) 
     { 
     return itemList.get(position).getName(); 
     } 

단순히 클릭 할 수 있도록하기 위해,

https://developer.android.com/reference/android/widget/AutoCompleteTextView.html#performCompletion()

private void performCompletion(View selectedView, int position, long id) { 
    if (isPopupShowing()) { 
     Object selectedItem; 
     if (position < 0) { 
      selectedItem = mPopup.getSelectedItem(); 
     } else { 
      selectedItem = mAdapter.getItem(position); // It will null if we return null in getItem() method of an adapter 

     } 
     if (selectedItem == null) { 
      return; 
     } 
} 

드롭은 다음 코드에 의해 항목을 클릭 나타납니다 AutoCompleteTextView에이 방법 performCompletion을 사용 adapter.getItem (위치)를 사용하여 값을 가져옵니다 null 반환,

@Override 
public Object getItem(int position) { 
    return null; 
} 

드롭 다운 목록이 표시되지만 항목을 클릭 할 수 없습니다.

관련 문제