我尝试将以下代码实现到片段中。当然,我做了所有必要的更改,以避免语法和其他错误。
public class MainActivity extends ActionBarActivity {
private AutoCompleteTextView autoCompleteTextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
autoCompleteTextView = (AutoCompleteTextView)findViewById(R.id.autoCompleteTextView);
String[]dataStorage = {"Nigeria", "Ghana", "Mali", "South Africa", "Cameroon", "Niger", "Algeria", "Zimbabwe"};
ArrayAdapter adapter = new ArrayAdapter(getApplicationContext(), android.R.layout.select_dialog_item, dataStorage);
autoCompleteTextView.setThreshold(2);
autoCompleteTextView.setAdapter(adapter);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
它正在运行,没有任何错误,但我没有得到第一个字符后的搜索建议。首先,屏幕键盘在全视图模式下打开,并带有一个名为Submit的按钮。我无法得到任何建议,或者因为这款全屏键盘而无法看到它。
答案 0 :(得分:1)
如果问题只是隐藏搜索建议的全屏键盘,您可以通过设置flagNoExtractUi
选项来禁用全屏键盘:
<AutoCompleteTextView
android:id="@+id/autoCompleteTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:imeOptions="flagNoExtractUi" />
除此之外,您的代码很好,AutoCompleteTextView应该可以正常工作。
答案 1 :(得分:1)
来自文档:
setThreshold(int threshold)
指定在显示下拉列表之前用户必须在编辑框中键入的最小字符数。
您将阈值设置为2个字符然后进行预测。此外,提供给适配器的测试数据列表非常独特
尝试将阈值设置为0,然后重试
您还应该指定数组适配器的类型:
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(),android.R.layout.select_dialog_item, dataStorage);