最近在学习ListView,说简单简单说复杂也是相当复杂,还是要捋捋的,思路清晰用起来才方便快捷嘛,只是一个简单的小例子,用于记录学习过程,也希望给大家一点帮助吧,我先用字叙述一遍捋捋思路然后在上代码。
首先新创建一个项目,会自动生成一个MainActivity.java的源文件和一个activity_main.xml的描述文件,
1.在activtiy_main.xml中:
首先在activity_main.xml文件中添加一个标签<ListView></ListView>其中将id属性的值设为list_view(目前只要宽高id三个属性即可)
2.在MainActivity.java中:
1》在MainActivity.java中声明并初始化一个数组,例:一个字符串数组(就是说数组类型为String),修饰为私有的、静态的、常量的,命名为strs内容假设为first、second、third、fourth.
2》声明ListView另命名为listview
3》首先绑定控件(获取listview对象的引用)通过findViewById来实现
4》实例化一个adapter:ArrayAdapter<这里是数组类型> adapter = new ArrayAdapter<这里是数组类型>(
a,b,c);
这里详细讲解三个参数a,b,c分别代表什么:
a是指上下文:这里是MainActivity.java写法为this即可
b是指列表中每条数据的显示格式:(也就是每条信息的布局样式):假设为R.layout.simple_list_item (那么就要创建一个名为simple_list_item的XML文件,这里需要注意的是该文件中只要一个TextView标签即可,并且最最重要的是TextView要作根节点,只需要在TextView中添加xmlns:android="http://schemas.android.com/apk/res/android"这句话即可)
c是指要显示的数据:这里指的是上面咱们初始化的名为strs的数组 里面的内容
5》最后用adapter将ListView和数据连接起来,用setAdapter属性完成:listview.setAdapter(adapter);
6》运行可查看到效果,成功!!
【效果图】
现在用代码讲解一遍:
1》在activity_main.xml文件中添加一个ListView标签,将id属性的值设为list_view
【源代码】
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity"> <ListView android:id="@+id/list_view" android:layout_width="match_parent" android:layout_height="match_parent"> </ListView> </LinearLayout>
2》在MainActivity.java中:
2.1 声明并初始化一个数组
2.2 声明ListView 命名为listview
2.3 绑定控件(获取listview对象的引用)
2.4 实例化一个adapter
2.5 通过adapter将ListView与数据连接起来
【源代码】
import android.app.Activity; import android.os.Bundle; import android.widget.ArrayAdapter; import android.widget.ListView; public class MainActivity extends Activity { //2.1 声明并初始化一个数组 private static final String[] strs = {"first","second" ,"third","fourth"};//定义一个String数组用来显示ListView的内容 //2.2 声明ListView 命名为listview private ListView listView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //2.3 绑定控件(获取listview对象的引用) listView = (ListView) findViewById(R.id.list_view);//得到ListView对象的引用 //2.4 实例化一个adapter ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,R.layout.simple_list_item,strs); //2.5 通过adapter将ListView与数据连接起来 listView.setAdapter(adapter); } }
【效果图】