2017-05-24 21 views
0

取消選擇我正在一個項目,需要我開發一個自動完成輸入建議框問題是建議項目分類,他們每個類別應該是突出顯示和不可點擊。 我已經實現定製ArrayAdapter用於此目的,但便無法弄清楚如何使聯合國類別點擊 這裏是我的自定義陣列適配器代碼如何使一些項目的AutoCompleteTextView建議在Android

public class CustomAutoCompleteAdapter extends ArrayAdapter<String> { 
    private static final int TYPE_ITEM = 0; 
    private static final int TYPE_CATEGORY = 1; 
    private TreeSet<Integer> sectionHeader = new TreeSet<Integer>(); 
    private LayoutInflater mInflater; 


    public CustomAutoCompleteAdapter(@NonNull Context context, @LayoutRes int resource, @NonNull List<String> objects) { 
     super(context, resource, objects); 
     mInflater = LayoutInflater.from(context); 
    } 
    public int getItemViewType(int position) { 
     return sectionHeader.contains(position) ? TYPE_CATEGORY : TYPE_ITEM; 
    } 

    public void addHeader(String item) { 
     super.add(item); 
     sectionHeader.add(this.getCount() - 1); 
    } 

    @Override 
    public int getViewTypeCount() { 
     return 2; 
    } 

    @NonNull 
    @Override 
    public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) { 
     ViewHolder holder = null; 
     if(convertView==null){ 
      int type = getItemViewType(position); 
      holder = new ViewHolder(); 
      if(type == TYPE_ITEM){ 
       convertView = mInflater.inflate(R.layout.item_layout,null); 
       holder.textView = (TextView) convertView.findViewById(R.id.text); 
      } 
      else{ 
       convertView = mInflater.inflate(R.layout.category_layout,null); 
       holder.textView = (TextView) convertView.findViewById(R.id.category); 
       convertView.setClickable(false); 
      } 
      convertView.setTag(holder); 
     } 
     else { 
      holder = (ViewHolder) convertView.getTag(); 
     } 
     holder.textView.setText(this.getItem(position)); 

     return convertView; 
    } 
    private static class ViewHolder { 
     public TextView textView; 
    } 

} 
+0

請參閱'ListAdapter#isEnabled' – pskink

回答

0

在你CustomAutoCompleteAdapter,覆蓋isEnabled()方法來禁用視圖類型TYPE_CATEGORY

添加下面的代碼在你的CustomAutoCompleteAdapter

@Override 
public boolean isEnabled(int position) 
{ 
    return ((getItemViewType(position) != TYPE_CATEGORY)); 
} 

希望這將有助於〜

+0

感謝@FAT,爲我工作 – Zed

+0

很高興知道:) – FAT

0

試圖通過設置您的convertview和TextView的既能去除焦點從視圖 「unfocusable()」。像這樣:

convertView.setFocusable(false); 
holder.textview.setFocusable(false); 

希望它能工作!

+0

我試過這個,但沒有工作,下面的答案爲我工作 – Zed

+0

這很好! –

相關問題