我必须将一些预定义值设置为MultiAutoCompleteTextView
(在我从建议下拉列表中选择之前)。就好像,就像你从下拉列表中选择了2-3个项目一样。设置这些预定义值后,我再次希望从列表中继续正常的过滤过程并将其添加到MultiAutoCompleteTextView
。
看起来像这样
Predefined1, Predefined2, Predefined3,
如果我像使用TextView
或EditText
那样使用setText(...),并使用逗号分隔值,则将其视为1个整字并在末尾添加逗号。< / p>
请建议我如何实施它。
修改:
好。让我详细解释一下。我想在this和this中实现目标。但是,另外一个要求是,除了从建议下拉菜单中选择值之外,我还需要在显示View时设置一些预定义的值,当我写东西并按下输入/隐藏键盘时,无论我写的是什么都应转换为按钮文字。 如果不可能,还有其他选择吗?请建议。
修改:
这些值应该在视图中,而不从下拉列表中选择。之后,无论用户从建议中添加哪个用户,都应将其添加到列表中。
就像在用户开始输入之前将提示或一些文字设置为EditText
。
感谢。
答案 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");