写了一个小的安卓列表适配器的程序,非常简单精简的程序,代码敲完之后本以为是毫无悬念的运行正常,可是一运行程序就自动退出了,在模拟器一端显示如下错误:
unfortunately xxx has stopped
查看了一下logCat中的信息,发现Tag:ArrayAdapter 这个log报错为You must supply a resource ID for a TextView。
很显然是适配器需要一个TextView的资源ID,开始的时候以为是布局文件中的ID没指定,可是我的布局文件中根本就没有TextView啊,全是ListView。这个问题让我纠结了,就那么点代码,这个错误还能还找不到!
我想一定是ArrayAdapter的问题,于是我查看了一下
ArrayAdapter<String> arrayAdapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,arr);
在文档中发现,其中第二个参数是TextView的ID,原来是这个里面的字段写错了,其实,我之前写的是android.R.layout.simple_list_item_2,改成android.R.layout.simple_list_item_1就可以了。原本android.R.layout.simple_list_item_2的值应该也是合法的,但在我的模拟器上跑不通。