我正在尝试用AutoCompleteTextView创建一个自动完整的文本输入字段。但是当我启动应用程序时,它会中断,日志文件会报告NullPointerException。
在onCreate中有:
ArrayAdapter<String> adapter = new ArrayAdapter<String>
(this, android.R.layout.select_dialog_item, codes);
AutoCompleteTextView actv = (AutoCompleteTextView)findViewById(R.id.actvPrompt);
if(actv == null) {
Log.e("MyApp", "actv is null");
}
actv.setAdapter(adapter); // This line throws exception.在xml布局中:
<AutoCompleteTextView
android:id="@+id/actvPrompt"
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</AutoCompleteTextView> 我检查了“代码”数组,它填充得很好。
为什么actv为空?
发布于 2015-02-27 10:10:38
很可能您在onCreate()中缺少了onCreate(),或者您没有在 findViewById()之前使用,或者使用的是不同的layout.xml。
发布于 2015-02-27 10:15:16
将代码替换为:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);//This is your layout<-----
ArrayAdapter<String> adapter = new ArrayAdapter<String>
(YourClass.this, android.R.layout.select_dialog_item, codes);
AutoCompleteTextView actv = (AutoCompleteTextView)findViewById(R.id.actvPrompt);
actv.setAdapter(adapter);还尝试更改XML以实现以下目的:
<AutoCompleteTextView
android:id="@+id/actvPrompt"
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>希望它有帮助:)
发布于 2015-02-27 10:14:49
而不是这个关键字,您必须使用ClassName.this
ArrayAdapter适配器=新ArrayAdapter
(Classname.this, android.R.layout.select\_dialog\_item, codes);https://stackoverflow.com/questions/28762344
复制相似问题