5

我必须设置一些预定义的值MultiAutoCompleteTextView(在我从建议下拉列表中选择之前)。就像您从下拉列表中选择了 2-3 个项目一样。设置这些预定义值后,我想再次从列表中继续正常的过滤过程并将其添加到MultiAutoCompleteTextView.

它看起来像这样

Predefined1, Predefined2, Predefined3,  

如果我像使用TextViewor一样执行 setText(...) EditText,并使用一些逗号分隔值,则将其视为 1 个整个单词并在末尾添加一个逗号。

请建议我如何实现它。

编辑 :

好的。让我详细解释一下。我试图在thisthis中实现这样的目标。但是,一个额外的要求是,除了从建议下拉列表中选择值外,我还需要在显示视图时设置一些预定义值,当我写一些东西并按下回车/隐藏键盘时,我写的任何内容都应该转换为按钮文本。如果不可能,还有其他选择吗?请建议。

编辑 :

在此处输入图像描述

这些值应该在视图中而不从下拉列表中选择。稍后,无论用户从建议下拉列表中添加哪个用户,这些用户也应该添加到列表中。

这就像EditText在用户开始输入之前设置提示或一些文本。

谢谢。

4

1 回答 1

7

尝试以下操作:

   ArrayList<String> data=new ArrayList<String>();
    data.add("Predefined1");
    data.add("Predefined2");
    data.add("Predefined3");

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                     android.R.layout.simple_dropdown_item_1line, data.toArray());
             MultiAutoCompleteTextView textView = (MultiAutoCompleteTextView) findViewById(/*View id*/);

MultiAutoCompleteTextView.CommaTokenizer tokenizer=new MultiAutoCompleteTextView.CommaTokenizer();

             textView.setAdapter(adapter);
             textView.setTokenizer(tokenizer);

    textView.setOnEditorActionListener(new TextView.OnEditorActionListener(){
     @Override
        public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
            if (event.getKeyCode() == KeyEvent.KEYCODE_ENTER) {
                data.add(v.getText().toString());
                adapter.notifyDataSetChanged();
                return true;    
            }
            return false;
        }

    });

textView.setText("Predefined1,");
tokenizer.terminateToken("Predefined1");


textView.setText(textView.getText().toString()+"Predefined2,");
tokenizer.terminateToken("Predefined2");

textView.setText(textView.getText().toString()+"Predefined3,");
tokenizer.terminateToken("Predefined3");
于 2013-09-04T15:29:37.823 回答