2013-06-20 33 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;並重寫此公共布爾isEnabled(int位置)並根據需要返回true/false。 – Varun

回答

1

我知道我是太晚了這個answer.But這將幫助你。 爲此,您必須通過擴展BaseAdapter來實現自定義適配器。 autocompleteTextview獲得價值使用adapter.getItem(位置)使用方法performCompletion

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; 
     } 
} 

下拉列表將通過下面的代碼獲得項目點擊,

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

爲了使它不只是點擊返回null,

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

它會顯示下拉列表,但項目不會被點擊。