2017-05-24 14 views
0

私はオートコンプリート入力の提案ボックスを開発する必要があるプロジェクトに取り組んでいます。問題は、各カテゴリがハイライトされ、 。 私は、この目的のためにカスタムArrayAdapterを実施したが、ここでのカテゴリはアンクリッカブル ようにする方法を見つけ出すcould'tてきたが、私のカスタムアレイアダプタのコードは、ビュータイプTYPE_CATEGORYを無効にするisEnabled()メソッドをオーバーライドして、あなたのCustomAutoCompleteAdapterどのようにAutoCompleteTextView提案のいくつかの項目をアンドロイドで選択不可にする

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にコードの下に追加します。

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

希望これは〜

+0

おかげで – Zed

+0

のために働いて、下記お答えすることは良いことだと私 – FAT

0

があなたのconvertviewを設定することにより、ビューからフォーカスを削除し、TextViewの両方 "unfocusable()" にしてください役立ちます。このように:

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

うまくいきますように!その@FAT

+0

が、私はこれを試みたが、うまくいきませんでした:)ことを知ってくれうれしい – Zed

+0

のために働い!!!! –

関連する問題