android中的阵列适配器
我这里有一个非常基本的问题: 我正在使用ArrayAdapter创建一个android列表,它将数据从字符串数组填充到listView:android中的阵列适配器,android,listview,android-listview,Android,Listview,Android Listview,我这里有一个非常基本的问题: 我正在使用ArrayAdapter创建一个android列表,它将数据从字符串数组填充到listView: final String[] listData={"Red", "Green", "Blue", "Purple", "Orange"}; final ListView lv=(ListView)findViewById(R.id.listView1); final ArrayAdapter&l
final String[] listData={"Red", "Green", "Blue",
"Purple", "Orange"};
final ListView lv=(ListView)findViewById(R.id.listView1);
final ArrayAdapter<String> aa=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, listData);
lv.setAdapter(aa);
final String[]listData={“红色”、“绿色”、“蓝色”,
“紫色”、“橙色”};
最终ListView lv=(ListView)findViewById(R.id.listView1);
最终ArrayAdapter aa=新的ArrayAdapter(这是android.R.layout.simple\u list\u item\u 1,listData);
低压设置适配器(aa);
上面的代码运行良好。我的问题是,为什么我们不能使用以下适配器实现:
final ArrayAdapter<String> aa=new ArrayAdapter<String>(this, R.id.listView1, listData);
final ArrayAdapter aa=新的ArrayAdapter(这个,R.id.listView1,listData);
listView1是activity_main.xml中我的ListView的id。我尝试使用此实现,但应用程序崩溃。
我错过了什么?抱歉,如果这个问题看起来很傻,因为我还在学习如何编程android!谢谢你的帮助 你有
ArrayAdapter<String> aa=new ArrayAdapter<String>(this, R.id.listView1, listData);
ArrayAdapter(上下文上下文、int资源、int文本视图资源ID、T[]对象)
第二个参数是一个资源,它应该是一个带有文本视图的布局
第三个参数是您拥有的textview id
ArrayAdapter<String> aa=new ArrayAdapter<String>(this, R.id.listView1, listData);
ArrayAdapter(上下文上下文、int资源、int文本视图资源ID、T[]对象)
第二个参数是一个资源,它应该是一个带有文本视图的布局
第三个参数是textview id
listView1是activity_main.xml中我的ListView的id
构造函数需要一个TextView
的id,将您通过listData提供的文本放在哪里
listView1是activity_main.xml中我的ListView的id
构造函数需要一个
TextView
的id,将您通过listData提供的文本放在哪里您试图使用一个非自定义数组适配器的自定义布局。Android基本上不知道你的布局项目是什么,比如TextView
。为此,您有另一个构造函数,可以在其中指定TextView
的ID:
final ArrayAdapter<String> aa=new ArrayAdapter<String>(this, R.id.listView1, R.id.your_textview_id, listData);
final ArrayAdapter aa=新的ArrayAdapter(this,R.id.listView1,R.id.your_textview_id,listData);
您正在尝试将自定义布局与非自定义阵列适配器一起使用。Android基本上不知道你的布局项目是什么,比如TextView
。为此,您有另一个构造函数,可以在其中指定TextView
的ID:
final ArrayAdapter<String> aa=new ArrayAdapter<String>(this, R.id.listView1, R.id.your_textview_id, listData);
final ArrayAdapter aa=新的ArrayAdapter(this,R.id.listView1,R.id.your_textview_id,listData);
在ArrayAdapter(Context Context,int resource,T[]objects)中,构造函数的第二个参数是要膨胀的布局资源,因此您必须传递R.layout而不是R.id作为参数。在您的布局中应该有id@android:id/text的TextView,以便android自动设置字符串。如果要提供id,请使用ArrayAdapter(上下文上下文、int-resource、int-textViewResourceId、T[]对象) 在ArrayAdapter(Context Context,int resource,T[]objects)中,构造函数的第二个参数是要膨胀的布局资源,因此您必须传递R.layout而不是R.id作为参数。在您的布局中应该有id@android:id/text的TextView,以便android自动设置字符串。如果要提供id,请使用ArrayAdapter(上下文上下文、int-resource、int-textViewResourceId、T[]对象)