Android中ListView动态添加删除项
2012-07-27 19:41
429 查看
ListView需要删除
参考资料
首先是创建三个全局变量:
SimpleAdapter listItemAdapter; // ListView的适配器
ArrayList<HashMap<String, Object>> listItem; // ListView的数据源,这里是一个HashMap的列表
ListView myList; // ListView控件
然后在Activity的onCreate函数中对变量进行初始化:
listItem = new ArrayList<HashMap<String, Object>>();
listItemAdapter = new SimpleAdapter(this, listItem, R.layout.mylayout,
new String[]{"image", "title", "text"},
new int[]{R.id.ItemImage, R.id.ItemTitle, R.id.ItemText});
myList = (ListView)findViewById(R.id.TaxiList);
myList.setAdapter(listItemAdapter);
添加两个私有的功能函数:
private void addItem()
{
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("image", R.drawable.icon);
map.put("title", "标题");
map.put("text", "要显示的内容");
listItem.add(map);
listItemAdapter.notifyDataSetChanged();
}
private void deleteItem()
{
int size = listItem.size();
if( size > 0 )
{
listItem.remove(listItem.size() - 1);
listItemAdapter.notifyDataSetChanged();
}
}
另附上ListView的项自定义的Layout不再多说:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:id="@+id/RelativeLayout01"
android:layout_width="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content"
android:paddingBottom="4dip"
android:paddingLeft="12dip"
android:paddingRight="12dip">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/taxi1"
android:id="@+id/ItemImage"
android:paddingTop="4dip">
</ImageView>
<TextView
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:text="DaZhong Taxi Corporation"
android:layout_toRightOf="@+id/ItemImage"
android:id="@+id/ItemTitle"
android:textSize="24dip"></TextView>
<TextView
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:text="Tel:021-67786874"
android:id="@+id/ItemText"
android:layout_below="@+id/ItemTitle"
android:layout_toRightOf="@+id/ItemImage">
</TextView>
</RelativeLayout>
android中listview的元素删除问题
2012-01-19 14:04
参考资料
首先是创建三个全局变量:
SimpleAdapter listItemAdapter; // ListView的适配器
ArrayList<HashMap<String, Object>> listItem; // ListView的数据源,这里是一个HashMap的列表
ListView myList; // ListView控件
然后在Activity的onCreate函数中对变量进行初始化:
listItem = new ArrayList<HashMap<String, Object>>();
listItemAdapter = new SimpleAdapter(this, listItem, R.layout.mylayout,
new String[]{"image", "title", "text"},
new int[]{R.id.ItemImage, R.id.ItemTitle, R.id.ItemText});
myList = (ListView)findViewById(R.id.TaxiList);
myList.setAdapter(listItemAdapter);
添加两个私有的功能函数:
private void addItem()
{
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("image", R.drawable.icon);
map.put("title", "标题");
map.put("text", "要显示的内容");
listItem.add(map);
listItemAdapter.notifyDataSetChanged();
}
private void deleteItem()
{
int size = listItem.size();
if( size > 0 )
{
listItem.remove(listItem.size() - 1);
listItemAdapter.notifyDataSetChanged();
}
}
另附上ListView的项自定义的Layout不再多说:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:id="@+id/RelativeLayout01"
android:layout_width="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content"
android:paddingBottom="4dip"
android:paddingLeft="12dip"
android:paddingRight="12dip">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/taxi1"
android:id="@+id/ItemImage"
android:paddingTop="4dip">
</ImageView>
<TextView
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:text="DaZhong Taxi Corporation"
android:layout_toRightOf="@+id/ItemImage"
android:id="@+id/ItemTitle"
android:textSize="24dip"></TextView>
<TextView
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:text="Tel:021-67786874"
android:id="@+id/ItemText"
android:layout_below="@+id/ItemTitle"
android:layout_toRightOf="@+id/ItemImage">
</TextView>
</RelativeLayout>
android中listview的元素删除问题
2012-01-19 14:04
写了一个listview 每行有一个删除按钮,用于删除这一行。删除按钮的click事件是在adapter里实现的 @Override public void onClick(View v) { Button delButton = (Button)v; String title = (String)delButton.getTag(); preference.getAllViews().remove(title); mTitList.remove(title); baseAdapter.notifyDataSetChanged(); } 此时会重新调用getView方法 @Override public View getView(int position, View convertView, ViewGroup parent) { LinearLayout layout = null; TicTacToeNode node = null; if (position == 0) { node = new TicTacToeNode(); node.setTitle("首页"); } else { node = preference.getNodeByTitle(mTitList.get(position)); } // if (convertView == null) { LayoutInflater inflater = LayoutInflater.from(mContext); layout = (LinearLayout)inflater.inflate(R.layout.windows_manage_list_item, null); ImageView icon = (ImageView)layout.findViewById(R.id.item_icon); if (position == 0){ icon.setImageBitmap(BitmapFactory.decodeResource(mContext.getResources(), R.drawable.icon)); } else { Bitmap iconBitmap = ResourceUtil.getImageBySD(Preference.SDCARD_URL + node.getIcon()); icon.setImageBitmap(iconBitmap); //icon.setImageBitmap(Preference.GetInstence().getAllViews().get(node.getTitle()).getDrawingCache()); } TextView titleView = (TextView)layout.findViewById(R.id.item_name); titleView.setText(node.getTitle()); titleView.setTextSize(14); Button deleteButton = (Button)layout.findViewById(R.id.del_button); if (position == 0) { deleteButton.setVisibility(View.INVISIBLE); } else { deleteButton.setVisibility(View.VISIBLE); deleteButton.setOnClickListener(deleteButtonListener); deleteButton.setFocusable(false); deleteButton.setTag(node.getTitle()); } // } // else { // layout = (LinearLayout)convertView; // } return layout; } 因为这里的复用机制,所以判断convertView为空时才创建新的行view,此时实际效果是删除了第一行元素(只是视图错乱,数据没有问题),我想是应该removeView来删除这个view来防止上面的问题,但如何获得这个view呢 待验证方式:根据button的tag记下此行的index,从传递过来的listview删除掉此view |
相关文章推荐
- android ListView内数据的动态添加与删除
- Android中ListView动态添加删除项
- Android – ListView 中添加按钮,动态删除添加ItemView的操作
- android ListView内数据的动态添加与删除实例代码
- Android实战简易教程-第十一枪(树形组件:ExpandableListView显示和动态添加删除)
- android ListView内数据的动态添加与删除
- ANDROID 动态添加的listView,仿QQ滑动删除
- android ListView内数据的动态添加与删除
- Android中ListView动态添加删除项
- android ListView内数据的动态添加与删除
- Android中ListView动态添加删除项
- Android 动态添加删除ExpandableListView的item的例子
- android开发--详解ListView,动态添加,删除Adapter中的数据项
- Android – ListView 中添加按钮,动态删除添加ItemView的操作
- android开发--详解ListView,动态添加,删除Adapter中的数据项
- android ListView内数据的动态添加与删除
- Android – ListView 中添加按钮,动态删除添加ItemView的操作
- Android实战简易教程<十一>(树形组件:ExpandableListView显示和动态添加删除)
- 【android】ListView 中添加按钮,动态删除添加ItemView的操作
- Android---动态添加删除的ListView与TableLayout