0

我正在使用TokenAutoComplete庫將Gmail樣式的芯片添加到我的文本框。一切工作正常。唯一的問題是,我想在加載UI時將項目添加到我的ChipTextView,但我找不到任何方法來完成此操作。所有我添加到適配器的項目都會顯示爲建議。將項添加到TokenAutoComplete Android

我ChipTextView類:

public class ChipTextView extends TokenCompleteTextView { 

    public ChipTextView(Context context) { 
     super(context); 
     // TODO Auto-generated constructor stub 
    } 

    public ChipTextView(Context context, AttributeSet attrs, int defStyle) { 
     super(context, attrs, defStyle); 
     // TODO Auto-generated constructor stub 
    } 

    public ChipTextView(Context context, AttributeSet attrs) { 
     super(context, attrs); 
     // TODO Auto-generated constructor stub 
    } 

    @Override 
    protected Object defaultObject(String text) { 
     return text; 
    } 

    @Override 
    protected View getViewForObject(Object text) { 
     String hashtag = (String) text; 
     LayoutInflater l = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     LinearLayout view = (LinearLayout) l.inflate(R.layout.chiptextview_item, 
       (ViewGroup) ChipTextView.this.getParent(), false); 
     ((TextView) view.findViewById(R.id.tv_text)).setText(hashtag); 

     return view; 
    } 
} 

我的片段從我在哪裏設置ChipTextView:

ArrayList<String> list=new ArrayList<>(); 
list.add("hello"); 
list.add("hi"); 
list.add("how"); 

ChipTextView tv_chipview=(ChipTextView) parentView.findViewById(R.id.tv_chipview); 
ArrayAdapter<String> mAdapter; 
mAdapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1,list); 
tv_chipview.setAdapter(mAdapter); 
tv_chipview.allowDuplicates(false); 
tv_chipview.setDeletionStyle(TokenDeleteStyle.Clear); 

這是它是如何所示,當我將項目添加使用到適配器代碼 Image after setting up my UI

我希望輸出在設置後顯示。這是它是如何當我用我的鍵盤顯示:

What it looks like if i add items mannually using keyboard

如何從代碼項目添加到ChipTextView,這樣好像我已經使用鍵盤加入他們嗎?

回答

3

我在TokenAutoComplete github documentation上發現了我的問題的解決方案。我不知道我是如何錯過這個,但我終於找到了它。 :)

對於任何人遇到同樣的問題,我建議您使用addObject()方法將項目添加到ChipTextView