ListView和何种列表,困惑了我很久
终于下决心把它们一次性搞搞清楚
从动态添加项开始写起吧。
首先我得有个ListView,好,先在xml布局文件里加一个,由于我要写的是动态添加,那么,再来个Button好了
<ListView
android:id="@+id/lv"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="8">
</ListView>
<Button
android:id="@+id/btn"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_marginTop="10dp"
android:text="click the button!"/>
(把它俩放再LinearLayout里边,设置一下layout_weight感觉比较合理些)
其次,在代码中新建ListView和Button,并使用findViewById方法建立连接
ListView list;
Button btn;
list = (ListView)findViewById(R.id.lv);
btn = (Button)findViewById(R.id.btn);
接下来就是想想怎么构造Adapter,首先还是得新建个adapter,当然还有存储数据用的ArrayList(或者其他的)
ArrayList<String> array;
ArrayAdapter<String> adapter;
array = new ArrayList<String>();
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, array);
第四行里的构造方法,第一个参数是context,第二个是每个列表项的布局,这里使用Android资源,一个简单的textview,第三个参数是存放数据的数组。
配置好了之后,为ListView设置adapter
list.setAdapter(adapter);
开始实现动态添加,为button设置监听器,写它的点击事件
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
array.add("click the button!");
adapter.notifyDataSetChanged();
}
});
这样每按一次按钮,就会添加一个列表项了。
就酱。