我创建了一个自动完整的文本视图,从一组特定的值中获取数据。我希望用户只能从提供的值中进行选择,而不能继续进行任何其他选择。
我一直在寻找一个可行的答案,但是没有得到任何帮助。在这方面的任何帮助将不胜感激。
PS:请注意我已经尝试了明显的文本更改观察器方法等,我正在寻找更有价值的东西。谢谢! :)请求的代码:(通常的基本自动完成代码)
autoText.setAdapter(this, android.R.layout.simple_dropdown_item_1line,arr);
autoText.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
tool = my_adapter.getItem(position).toString();
}
});
autoText.setOnItemSelectedListener(this);
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3)
{
Intent i=new Intent(this,Home.class);
startActivity(i);
}
public void onNothingSelected(AdapterView<?> arg0)
{
}
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,long arg3)
{
Intent i=new Intent(.this,Home.class);
startActivity(i);
}
public void afterTextChanged(Editable arg0)
{ }
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
int arg3)
{ }
public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3)
{
tool=null;
// trying to capture the value of item selected in variable *tool*.
}
答案 0 :(得分:0)
在xml ...的自动完成视图中使用数字标记,或使用inputType标记
答案 1 :(得分:0)
检查一下。但是我正在使用Text watcher。我没有尝试过。你必须自己动手并检查错误。
String[] YourArray={"foo","foo1","foo2"};
autoText.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// TODO Auto-generated method stub
boolean flag=true;
for(int i=0;i<YourArray.length;i++)
{
if(YourArray[i].contains(text.getText().toString()))
{
flag=false;
}
}
if(flag==false)
{
String a=text.getText().toString();
String b=a.substring(0, s.length()-1);
text.setText(b);//If the text input by user is not in the array, we undo the user input by removing last character from edit text.
}
}