Android AutoCompleteTextView NullPointerException

时间:2015-02-27 10:03:58

标签: android nullpointerexception autocompletetextview

我正在尝试使用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> 

我检查了代码&#39;数组,并且它的填充很好。

为什么actv为null?

3 个答案:

答案 0 :(得分:1)

您很可能在setContentView(R.layout.your_layout);中遗失onCreate(),或者在 findViewById()之前没有,或者您正在使用不同的layout.xml

答案 1 :(得分:1)

用以下代码替换您的代码:

    @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"/>

希望有所帮助:)

答案 2 :(得分:0)

而不是此关键字,您必须使用ClassName.this

ArrayAdapter adapter = new ArrayAdapter
     (Classname.this,android.R.layout.select_dialog_item,代码);