将预定义值设置为MultiAutoCompleteTextView:Android

时间:2013-08-26 11:29:53

标签: java android autocomplete android-widget custom-controls

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

看起来像这样

Predefined1, Predefined2, Predefined3,  

如果我像使用TextViewEditText那样使用setText(...),并使用逗号分隔值,则将其视为1个整字并在末尾添加逗号。< / p>

请建议我如何实施它。

修改:

好。让我详细解释一下。我想在thisthis中实现目标。但是,另外一个要求是,除了从建议下拉菜单中选择值之外,我还需要在显示View时设置一些预定义的值,当我写东西并按下输入/隐藏键盘时,无论我写的是什么都应转换为按钮文字。 如果不可能,还有其他选择吗?请建议。

修改:

enter image description here

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

就像在用户开始输入之前将提示或一些文字设置为EditText

感谢。

1 个答案:

答案 0 :(得分:6)

尝试以下方法:

   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");