2016-11-27 70 views
0

我试图实现以下代码片段。当然,我做了所有必要的更改以避免语法和其他错误。片段上没有建议的AutoCompleteTextView

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

} 
} 

它运行时没有任何错误,但我在第一个字符后没有得到搜索建议。首先在全屏模式下用称为提交的按钮打开屏幕键盘。我无法得到任何建议,也许我不能看到它,因为这个全屏键盘。

回答

1

如果问题仅仅是全屏键盘隐藏在搜索建议,您可以通过设置flagNoExtractUi选项禁用全屏键盘:

<AutoCompleteTextView 
    android:id="@+id/autoCompleteTextView" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:imeOptions="flagNoExtractUi" /> 

除此之外,你的代码是好的,而AutoCompleteTextView应该工作正确。

+0

这行到XML,但没有任何改变。 – appkovacs

+0

当您键入某些字符以及整个activity_main.xml时,您可以发布您的应用的屏幕截图吗? – weibeld

+0

它在'TableRow'中,如下所示。应用程序屏幕看起来很简单 ' ' – appkovacs

1

从文档:

setThreshold(int threshold) 

指定的最小字符数目用户具有被示出的下拉列表之前键入编辑框。

您正在将阈值设置为2个字符,然后进行预测。此外,提供给适配器测试数据的列表是非常独特的

尝试的阈值设置为0,然后再试一次

还应该指定数组适配器的类型:我添加

ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(),android.R.layout.select_dialog_item, dataStorage); 
+0

我将它设置为0,但也许它应该为“倪”。 – appkovacs

+0

我已经编辑了答案,你也应该指定arrayAdapter ArrayAdapter的类型 Pomanh

+0

我修改了代码,但没有改变。 – appkovacs