1.可以通过在values文件夹中定义数组文件arrays.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="books"> <item>java讲义</item> <item>android讲义</item> <item>ajax讲义</item> <item>.net讲义</item> </string-array> </resources>
main.xml文件只需要这么写
<!-- 直接使用数组资源给出列表项 --> <ListView android:layout_width="fill_parent" android:layout_height="wrap_content" android:divider="@drawable/red" android:entries="@array/books" android:headerDividersEnabled="true" />
android:entries这句话是导入数组文件的,java代码不需要做任何处理,只需要一句话setContentView(R.layout.main);
2.方式二是通过代码形式
main.xml
<ListView android:id="@+id/list2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:divider="@drawable/green" />
java代码
ListView list2 = (ListView)findViewById(R.id.list2); //定义一个数组 String[] arr ={"孙悟空" , "猪八戒" , "牛魔王"}; //将数组包装ArrayAdapter ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>( this , android.R.layout.simple_list_item_1 , arr); //为ListView设置Adapter list2.setAdapter(arrayAdapter);
当然这2种方式可以写在一个布局文件main.xml中
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <ListView android:layout_width="match_parent" android:layout_height="wrap_content" android:divider="@drawable/red" android:entries="@array/books" android:headerDividersEnabled="true" /> <ListView android:id="@+id/lv" android:layout_width="match_parent" android:layout_height="wrap_content" android:divider="@drawable/blue" /> </LinearLayout>
java代码如下
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ListView lv = (ListView) findViewById(R.id.lv); String[] str = { "hello", "world", "!!!" }; lv.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, str)); }
运行效果图如下