那些复杂的列表总要弄个清楚——(一)ListView动态添加项

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();
			}
		});

这样每按一次按钮,就会添加一个列表项了。

就酱。



猜你喜欢

转载自blog.csdn.net/qq_34215717/article/details/77206534