如何清空android 清空listview中的数据控件的内容

Android使用ListView批量删除item的方法
作者:manymore13
字体:[ ] 类型:转载 时间:
这篇文章主要介绍了Android使用ListView批量删除item的方法,实例分析了Android中ListView控件的相关操作技巧,需要的朋友可以参考下
本文实例讲述了Android使用ListView批量删除item的方法。分享给大家供大家参考,具体如下:
利用CheckBox选中一个或多个item,最后批量删除它们。
程序运行效果图如下:
下面开始上码:
(代码已更正,已解决滚动时紊乱的问题)
package com.test.
import java.util.ArrayL
import java.util.HashM
import java.util.L
import java.util.M
import android.app.ListA
import android.content.C
import android.os.B
import android.view.LayoutI
import android.view.M
import android.view.MenuI
import android.view.V
import android.view.ViewG
import android.widget.AdapterV
import android.widget.AdapterView.OnItemClickL
import android.widget.BaseA
import android.widget.CheckB
import android.widget.ListV
import android.widget.TextV
import android.widget.T
import com.test.adapter.ArrayAdapterActivity.ListVIewAdapter.ViewH
* ListView 批量删除Item
* @author manymore13
public class ArrayAdapterActivity extends ListActivity {
private ListVIewA
private List&String& strList = new ArrayList&String&();
private List&Boolean& boolList = new ArrayList&Boolean&();
boolean visflag =
static String str[] ={"1苹果","2香蕉","3桔子","4猕猴桃","5李子","6甘蔗","7荔枝","8桃子","9香瓜","10葡萄","11哈密瓜","12桂圆","13龙眼","14","15","16","17","18","19","20"};
for(int i=0;i&str.i++)
strList.add(str[i]);
boolList.add(false);
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
ladapter = new ListVIewAdapter(this);
lv = this.getListView();
lv.setAdapter(ladapter);
lv.setScrollBarStyle(1);
lv.setOnItemClickListener(new OnItemClickListener()
public void onItemClick(AdapterView&?& parent,
View view, int position, long id)
if(visflag)
ViewHolder viewHolder = (ViewHolder) view.getTag();
viewHolder.cb.toggle();
if(viewHolder.cb.isChecked())
boolList.set(position, true);
boolList.set(position, false);
class ListVIewAdapter extends BaseAdapter
LayoutInflater mI
ListVIewAdapter(Context context)
mInflater = getLayoutInflater();
public int getCount()
return strList.size();
public Object getItem(int position)
return strList.get(position);
public long getItemId(int position)
public View getView(final int position, View convertView,
ViewGroup parent)
ViewHolder holder =
if(convertView == null)
holder = new ViewHolder();
convertView = mInflater.inflate(R.layout.list_item, null);
holder.tv = (TextView)convertView.findViewById(R.id.textView);
holder.cb = (CheckBox)convertView.findViewById(R.id.checkBox);
convertView.setTag(holder);
holder = (ViewHolder) convertView.getTag();
holder.tv.setText(strList.get(position));
holder.cb.setChecked(boolList.get(position));
if(visflag)
holder.cb.setVisibility(View.VISIBLE);
holder.cb.setVisibility(View.INVISIBLE);
return convertV
class ViewHolder
public boolean onCreateOptionsMenu(Menu menu)
menu.add(0, 0, 0, "批量处理");
menu.add(0, 1, 0, "确定删除");
return super.onCreateOptionsMenu(menu);
public boolean onOptionsItemSelected(MenuItem item)
switch(item.getItemId())
case 0: // 批量处理
if(visflag)
for(int i=0; i&boolList.size();i++)
boolList.set(i, false);
this.ladapter.notifyDataSetInvalidated();
case 1: //确定删除
if(boolList.size()&0)
if(visflag)
for(int location=0; location&boolList.size(); )
if(boolList.get(location))
boolList.remove(location);
strList.remove(location);
location++;
this.ladapter.notifyDataSetChanged();
return super.onOptionsItemSelected(item);
还有list_item.xml
&?xml version="1.0" encoding="utf-8"?&
&LinearLayout xmlns:android="/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
&RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"&
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:id="@+id/checkBox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:visibility="gone"
android:focusable="false"
android:focusableInTouchMode="false"
android:clickable="false"
&/RelativeLayout&
&/LinearLayout&
更多关于Android相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》、《》、《》、《》、《》及《》
希望本文所述对大家Android程序设计有所帮助。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具君,已阅读到文档的结尾了呢~~
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
android开发-详解ListView动态添加,删除Adapter中的数据项
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口下次自动登录
现在的位置:
& 综合 & 正文
【Android界面实现】ZListView,一个最强大的刷新、加载、滑动删除的ListView控件(一)
转载请注明出处:
两个月之前,写过一篇 ,介绍了如何整合两个开源项目实现这种功能,但是在实际的使用中,却出现了一些问题,比如说item的点击事件多次调用,item的position不准确,量太大太复杂等,一个哥们在自己的工作中使用了这个项目,这些BUG给他造成了困扰。所以,花费了三天时间看懂项目的基础上,我决定重写这个项目,然后就有了今天的这篇文章,给大家介绍一个更加强大的ListView的使用和实现原理。为了纪念XListView和方便区分,我决定给这个控件取名为ZListVIew。
另外,这篇文章涉及到的内容较多,请各位看官自备茶水、瓜子,提前做好准备~
本文将分成两部分进行介绍,前半部分是ZListView的使用介绍,后半部分是实现原理介绍。
ZListView的特点如下:
(1)使用与XListView完全一样
(2)即可以实现刷新、加载功能,也可以关闭,当作普通的ListView使用
(3)支持从四个方向进行侧滑
(4)添加了强大的事件监听,完全掌控各种事件触发过程
(5)修复了之前项目的各种BUG,更加稳定
(6)针对ListView,对滑动Item进行了优化和删减,代码添加注释,更加易懂好用
(7)出现问题随时叫我,强大的后援支持,嘻嘻
一、ZListView使用介绍
在开始介绍使用之前,先给大家看下运行效果,因为不知道什么原因,我上传的gif都变成静态图了,所以请大家点击这个网址看效果:
下面是整个项目的目录结构
BaseSwipeAdapter是一个适配器,如果你的ListView里面需要添加滑动效果的话,就需要继承这个类。
enums包里面是一些枚举值,比如滑动模式,滑动方向,显示模式等。
listener包里面是监听器,OnSwipeLayoutListener是用来监听ZSwipeItem的布局改变事件的,而SwipeListener则是监听ZSwipeItem的open、close、startOpen、startClose、update等事件的,但是我们使用的时候,我们仅需要继承SimpleSwipeListener,然后重写里面我们关心的事件即可。
widget包里面则是核心类,ZListView开头的,是经过修改之后的ListIVew核心类,和XListView的用法完全一样。而ZSwipeItem则是滑动Item的核心类,我们在这里面处理item的各种滑动操作。
介绍完基本的目录结构,下面就要介绍使用了。
MainActivity是我们的一个测试Activity,下面是代码
public class MainActivity extends Activity {
protected static final String TAG = "MainActivity";
private ZListView listV
private Handler handler = new Handler();
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = (ZListView) findViewById(R.id.listview);
listView.setXListViewListener(new IXListViewListener() {
public void onRefresh() {
handler.postDelayed(new Runnable() {
public void run() {
listView.stopRefresh();
public void onLoadMore() {
handler.postDelayed(new Runnable() {
public void run() {
listView.stopLoadMore();
listView.setPullLoadEnable(true);
listView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView&?& parent, View view,
int position, long id) {
Toast.makeText(MainActivity.this, "onItemClick=" + position,
Toast.LENGTH_SHORT).show();
listView.setOnItemLongClickListener(new OnItemLongClickListener() {
public boolean onItemLongClick(AdapterView&?& parent, View view,
int position, long id) {
Toast.makeText(MainActivity.this,
"onItemLongClick=" + position, Toast.LENGTH_SHORT)
listView.setAdapter(new ListViewAdapter(this));
从上面可以看出来,和使用XListView是完全一样的,下面是布局文件的代码,和XListView也是完全一样的,就是替换一下控件名称就可以
&?xml version="1.0" encoding="utf-8"?&
&LinearLayout xmlns:android="/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#f0f0f0" &
&com.socks.zlistview.widget.ZListView
android:id="@+id/listview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:cacheColorHint="@android:color/transparent" /&
&/LinearLayout&
主要是适配器用起来有一些差别。前面说过,如果我们要实现有侧滑功能的item,就要去继承BaseSwipeAdapter,因此,我们这里就需要这样做。但是在给出适配器的代码之前,我们需要先看一下Item的布局文件的写法,因为这个有强制要求。
&?xml version="1.0" encoding="utf-8"?&
&LinearLayout xmlns:android="/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content" &
&com.socks.zlistview.widget.ZSwipeItem
android:id="@+id/swipe_item"
android:layout_width="match_parent"
android:layout_height="wrap_content" &
&LinearLayout
android:id="@+id/ll"
android:layout_width="180dp"
android:layout_height="match_parent"
android:background="@android:color/holo_red_light"
android:gravity="center" &
&ImageView
android:layout_width="30dp"
android:layout_height="wrap_content"
android:src="@drawable/trash" /&
&/LinearLayout&
&LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/item_selector"
android:orientation="vertical"
android:padding="15dp" &
android:id="@+id/tv"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@android:color/black"
android:textSize="14sp" /&
&/LinearLayout&
&/com.socks.zlistview.widget.ZSwipeItem&
&/LinearLayout&
如果我们需要侧滑功能,那么我们的item里面必须有ZSwipeItem,其实ZSwipeItem是继承的FrameLayout,这点我们在原理讲解阶段会有更加详细的说明。在ZSwipeItem布局的里面,必须有两个ViewGroup布局,第一个ViewGroup里面包裹的就是侧滑之后显示的内容,而第二个ViewGroup则是在前面显示的布局,记住,这两个ViewGroup是必须的!否则会报错哦!
说完item布局文件的写法,下面开始看一下Adapter的代码。
public class ListViewAdapter extends BaseSwipeAdapter {
protected static final String TAG = "ListViewAdapter";
public ListViewAdapter(Activity context) {
this.context =
public int getCount() {
return 20;
public Object getItem(int position) {
public long getItemId(int position) {
public int getSwipeLayoutResourceId(int position) {
return R.id.swipe_
public View generateView(int position, ViewGroup parent) {
return context.getLayoutInflater().inflate(R.layout.item_listview,
parent, false);
public void fillValues(final int position, View convertView) {
final ZSwipeItem swipeItem = (ZSwipeItem) convertView
.findViewById(R.id.swipe_item);
LinearLayout ll = (LinearLayout) convertView.findViewById(R.id.ll);
TextView tv = (TextView) convertView.findViewById(R.id.tv);
tv.setText(position + "." + " 测试文本测试文本测试文本测试文本测试文本测试文本测试文本测试文本测试文本");
if (position % 4 == 1) {
swipeItem.setShowMode(ShowMode.PullOut);
swipeItem.setDragEdge(DragEdge.Right);
} else if (position % 4 == 2) {
swipeItem.setShowMode(ShowMode.LayDown);
swipeItem.setDragEdge(DragEdge.Right);
} else if (position % 4 == 3) {
swipeItem.setShowMode(ShowMode.PullOut);
swipeItem.setDragEdge(DragEdge.Left);
} else if (position % 4 == 0) {
swipeItem.setShowMode(ShowMode.LayDown);
swipeItem.setDragEdge(DragEdge.Left);
swipeItem.addSwipeListener(new SimpleSwipeListener() {
public void onOpen(ZSwipeItem layout) {
Log.d(TAG, "打开:" + position);
public void onClose(ZSwipeItem layout) {
Log.d(TAG, "关闭:" + position);
public void onStartOpen(ZSwipeItem layout) {
Log.d(TAG, "准备打开:" + position);
public void onStartClose(ZSwipeItem layout) {
Log.d(TAG, "准备关闭:" + position);
public void onHandRelease(ZSwipeItem layout, float xvel, float yvel) {
Log.d(TAG, "手势释放");
public void onUpdate(ZSwipeItem layout, int leftOffset,
int topOffset) {
Log.d(TAG, "位置更新");
ll.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Toast.makeText(context, "删除:" + position, Toast.LENGTH_SHORT)
swipeItem.close();
首先,我们必须继承BaseSwipeAdapter,不要嫌弃我啰嗦哈,继承之后,有几个特殊的需要我们去实现的方法,下面我们介绍这几个方法的用法:
(1)getSwipeLayoutResourceId(int position)这个方法用来返回position位置的布局文件中ZSwipeItem的id,之所以需要有position,是为了在有多种布局在一起的情况。大多数情况下,我们不需要关心position参数即可。
(2)generateView(int posiion , ViewGroup parent)在这个方法里面,我们需要完成布局文件资源的加载,就像上面这样用就可以了。
(3)fillVlues(int position ,View convertIView)这个方法是用来对我们的布局进行数据填充和监听器绑定的,在这里面,你不需要关心convertView是否为null,已经经过实例化了,尽情的调用就可以了。
(4)swipeItem.setShowMode()是在设置显示模式。显示模式一共有两种,PullOut和LayDown,在ShowMode枚举类型里面定义的。PullOut就是推出模式,侧滑之后,前面的布局会被推出屏外,后面的布局从屏外移动进来,而LayOut则是后面的布局会一点点的显示出来,也就是被遮盖主了。
(5)swipeItem.setDragEdge()是在设置侧滑动作的接受方向,Right代表从右边往左滑动的时候,后面布局会显示出来,这个也是一个枚举类型,有上下左右四个取值,一般推荐左右,上下和ListView的滑动有冲突,效果不好。
(6)通过swipeItem.addSwipeListener()可以给滑动item添加各种事件监听,推荐使用SimpleSwipeListener的匿名类,这样就可以只重写自己关心的事件,onOpen和onClose是打开关闭的时候调用,onStartXX则是在动作一开始就调用,因此,如果需要改变后面布局的状态,请在onStartXX的时候调用,onHandRelease()则是在用户手指离开屏幕的时候调用,参数layout是事件发生的ZSwipeItem对象、xvel和yvel则是手势放开瞬间,x和y方向的加速度。onUpdate()在滑动的时候一直会调用,leftOffset和topOffset是距离左上角坐标的距离。
(7)使用SWipeItem之后,可以和平常一样给后面布局中的控件添加各种事件,比如上面的代码就直接给后面的线性布局添加了点击事件,点击之后就会关闭滑动布局。
使用介绍就先写到这里了,项目大家请到我的github下载,因为实现原理稍微有点复杂,因此,我想分到下一篇中介绍。
项目地址:
&&&&推荐文章:
【上篇】【下篇】&Android用户界面之常用控件ListView(1)
Android用户界面之常用控件ListView(1)
视频太卡?试试切换线路
本课时针对课程内容进行简要讲解。
本课时介绍移动开发操作系统的发展历史,对Android的各个版本逐一回顾,简单讲解Android开发框架的构成,帮助大家快速了解Android体系的整体情况。
本课时学习如何搭建Android的开发环境。
本课时学习如何编写一个Android应用程序,通过这一课的学习,完成第一个Android应用的开发。
Activities是一个程序的组件之一,主要功能是提供界面。本课时介绍Android 四大核心组件之Activity的生命周期等内容。
Activities是一个程序的组件之一,主要功能是提供界面。本课时介绍Android 四大核心组件之Activity的生命周期等内容。
Android四大核心组件之Service与Activity不同,虽然看不到,但非常重要。本课时主要介绍Service的使用。
Android四大核心组件之Service与Activity不同,虽然看不到,但非常重要。本课时主要介绍Service的使用。
Broadcast是广播,和Android内的事件一样,它可以发出一个广播(事件),注册了该广播接收器(事件监听器)的所有组件都会接收到该广播,从而调用自己的响应方法(事件响应处理)。本课时主要介绍Broadcast Receiver的使用方法。
Content Provider是内容提供器,与内容(数据)的存取(存储、获取)有关,是Android应用程序的四大组成部分之一,是Android中的跨应用访问数据机制。本课时主要介绍Content Provider的使用方法。
Intent是同一个或不同的应用中的组件之间的消息传递的媒介,是一个将要执行动作的抽象描述,一般来说是作为参数来使用。 本课时主要介绍Intent的使用方法。
Intent是同一个或不同的应用中的组件之间的消息传递的媒介,是一个将要执行动作的抽象描述,一般来说是作为参数来使用。 本课时主要介绍Intent的实现方法。
Android的界面是有布局和组件协同完成的,布局好比是建筑里的框架,而组件则相当于建筑里的砖瓦。组件按照布局的要求依次排列,就组成了用户所看见的界面。Android的五大布局分别是LinearLayout(线性布局)、FrameLayout(单帧布局)、RelativeLayout(相对布局)、AbsoluteLayout(绝对布局)和TableLayout(表格布局)。本课时讲解如何在Android中进行界面布局。
ListView是用来显示一个列表的控件,它在Android源代码中是继承AbsListView类的,AbsListView类是继承于AdapterView类的,而AdapterView类是继承ViewGroup类的。本课时主要介绍ListView的使用方法。
ListView是用来显示一个列表的控件,它在Android源代码中是继承AbsListView类的,AbsListView类是继承于AdapterView类的,而AdapterView类是继承ViewGroup类的。本课时主要介绍ListView的使用方法。
ListView是用来显示一个列表的控件,它在Android源代码中是继承AbsListView类的,AbsListView类是继承于AdapterView类的,而AdapterView类是继承ViewGroup类的。本课时主要介绍ListView的使用方法。
本课时介绍Android中如何使用RadioGroup和RadioButton,实现自定义的RadioGroup中被选中RadioButton的变更监听事件。
CheckBox是多项选择,允许用户用列表中选择一个或多个选项, 它在android源代码中是继承CompoundButton类的,而CompoundButton类是继承于Button类的。本课程课时介绍了CheckBox的使用方法。
DatePicker是一个选择年月日的日历控件。本课时主要介绍DatePicker的使用方法。
TimePicker概述:TimePicker也继承自FrameLayout类,时间选择控件向用户显示一天中的时间(可以为24小时,也可以为AM/PM制),并允许用户进行选择,如果要捕获用户修改时间数据的事件,便需要为TimePicker添加 OnTimeChangedListener监听器。本课时讲解TimePicker的使用。
Spinner位于android.widget包下,每次只显示用户选中的元素,当用户再次点击时,会弹出选择列表供用户选择,而选择列表中的元素同样来自适配器,Spinner是View类的一个子类。本课时介绍Spinner的使用方法。
ProgressBar是一个进度条控件,当用户在后台执行一些任务时,在前台展示的信息,用于表示任务正在处理,请用户等待或者给用户展示处理的进度消息等,它在android源代码中是直接继承View类的。本课时介绍ProgressBar的使用方法。
SeekBar控件其实是相对高级的进度条,是可以拖动的,可以改变进度的一个进度条控件。本课时介绍SeekBar的使用方法。
GridView(网格视图)是按照行列的方式来显示内容的,一般用于显示图片等内容,比如实现九宫格图,用GridView是首选,也是最简单的。本课时介绍GridView的使用方法。
ProgressDialog,顾名思义,就是一个进度对话框,常用于显示载入进度、下载进度等,合理使用ProgressDialog能增加用户体验,让用户知道现在程序所处的状态。本课时介绍ProgressDialog的使用方法。
Notification是Android中常用的一种通知方式,当有未读短信或未接电话的时候,屏幕状态栏就会有提示图标,这时可以下拉状态栏来读取通知。在使用微信的时(微信在后台运行),如果有新消息时便会发出声音提示,状态栏也有相应的微信提示。本课时介绍Notification的使用方法。
ScrollView滚动视图是指当拥有很多内容,屏幕显示不完时,需要通过滚动跳来显示的视图。ScrollView只支持垂直滚动。本课程介绍了ScrollView的使用方法。
RatingBar是SeekBar和ProgressBar的扩展,用星星来评级,使用的默认大小RatingBar时,用户可以触摸/拖动或使用键来设置评分,它有大小两种样式,其中大的只适合指示,不适合于用户交互。本课时介绍RatingBar的使用方法。
ImageSwitcher类提供了图片切换功能,通过第三方的操作,设置当前ImageSwitcher显示的图片,同时设置图片变换的动画。本课时介绍ImageSwitcher的使用方法。
Gallery组件主要用于横向显示图像列表,不过按常规做法。Gallery组件只能有限地显示指定的图像。本课程介绍了Gallery的使用方法。
BaseAdapter是经常用到的基础数据适配器,它的主要用途是将一组数据传到像ListView、Spinner、Gallery及GridView等UI显示组件,它是继承自接口类Adapter。本课时介绍BaseAdapter的使用方法。
Android计算器是入门学习阶段最有趣的一个应用程序,本课时主要介绍实现一个简单Android计算器的所需要掌握的基本布局方法。
Android计算器是入门学习阶段最有趣的一个应用程序,本课时主要介绍实现一个简单Android计算器的具体实现方法。
Android中的后退事件在很多应用中被用到,给用户带来的方便之处妙不可言,非常友好的体现了Android的人机交互过程。本课时主要介绍后退事件中的使用方法。
AutoCompleteTextView是实现动态匹配输入的内容,如google搜索引擎当输入文本时可以根据内容显示匹配的热门信息。本课时介绍AutoCompleteTextView的使用方法。
EditText是一个非常重要的组件,可以说它是用户和Android应用进行数据传输窗户,有了它就等于有了一扇和Android应用传输的门,通过它用户可以把数据传给Android应用,然后得到想要的数据。本课时介绍EditText的使用方法。
在一个Android工程中,可能会使用大量的字符串作为提示信息,这些字符串都可作为字符串资源声明在配置文件中,从而实现程序的可配置性。本课时介绍字符串资源的使用方法。
本课时介绍国际化多语言的使用方法。
Android中颜色资源文件,几乎囊括了常用的各种颜色,选择颜色的时候一目了然,不必再为调色发愁。本课时介绍颜色资源的使用方法。
我们可以使用一些常用的尺寸单位来定义一些文字尺寸、视图组件的宽和高等,尺寸资源是一个数字类型的数据,被定义在res\values\dimens.xml文件中。本课时介绍尺寸资源的使用方法。
数组资源也就是一串字符串或者整数列表,经常被用于Menu和Spinner选项的保存。本课时介绍数组资源的使用方法。
Android SDK提供了一个强大的类Drawable。本课时介绍Drawable资源的使用方法。
样式是用于描述一个View或是一个窗口的显示属性的集合,样式可以指定如高度,填充,字体颜色,字体大小,背景颜色等属性。本课时介绍样式和主题的使用方法。
菜单是任何应用程序的一个重要部分,提供了透露应用程序功能和设置的通用接口。Android为开发者提供了一个简单的编程接口来实现各种条件下的标准化应用程序菜单。本课时介绍菜单资源的使用方法。
在androd手机中处理XML数据时很常见的事情,通常在不同平台传输数据的时候,就可能使用XML,XML是与平台无关的特性,被广泛运用于数据通信中。本课时介绍XML的使用方法。
在Android应用中使用assets目录下存放的资源文件,assets目录下存放的资源代表应用无法直接访问的原生资源,应用程序通过AssetManager以二进制流的形式来读取资源。本课时介绍assets资源的使用方法。
SharedPreferences是Android平台上一个轻量级的存储类,主要是保存一些常用的配置比如窗口状态,一般在Activity中 重载窗口状态onSaveInstanceState保存一般使用SharedPreferences完成,它提供了Android平台常规的Long长 整形、Int整形、String字符串型的保存。本课时介绍SharedPreferences存储的使用方法。
内部存储,就是将文件保存在设备内部存储器中,默认情况下,这些文件是相应程序私有的,对其他程序不透明,对用户也是不透明的,当程序卸载后,这些文件就会被删除。本课时主要介绍一般内部存储的使用方法。
所有Android设备都支持可以保存文件的共享外部存储器,这个外部存储器可以是可移动存储器(如SD卡),也可以是内置在设备中的外部存储器(不可移动)。本课时介绍一般外部存储的使用方法。
SQLite是一种关系型数据库,并且SQLite是轻量级的数据库解决方案,SQLite支持多数的SQL92标准,在一些场合下其性能优于MySql等数据库引擎。本课时介绍SQLite存储的使用方法。
SQLite是一种关系型数据库,并且SQLite是轻量级的数据库解决方案,SQLite支持多数的SQL92标准,在一些场合下其性能优于MySql等数据库引擎。本课时介绍SQLite存储的使用方法。
ContentProvider提供了在应用程序之前共享数据的一种机制,而每一个应用程序都是运行在不同的应用程序的,数据和文件在不同应用程序之间达到数据的共享不是没有可能,而是显得比较复杂,而正好Android中的ContentProvider则达到了这一需求,比如有时候我们需要操作手机里的联系人,手机里的多媒体等一些信息,我们都可以用到这个ContentProvider来达到所需。本课时介绍ContentProvider存储的使用方法。
通过调用Android的API,可以实现相册,播放器,录音和摄像等功能。本课时介绍多媒体的多种支持格式。
开发Android软件中可能经常需播放多媒体声音文件,一般使用MediaPlayer类,但该类占用资源较多,对于游戏等应用可能不是很适合,SoundPool类在SDK的android.media.SoundPool为声音池的意思。本课时介绍SoundPool的使用方法。
MediaPlayer播放音频比较简单,但要播放视频就需要SurfaceView,SurfaceView比普通的自定义View更有绘图上的优势,它支持完全的OpenGL ES库。本课时介绍MediaPlayer播放音频的使用方法。
使用VideoView播放视频简单、方便,除此之外,还可以利用MediaPlayer用来播放视频。本课时介绍MediaPlayer播放视频的使用方法。
VideoView是Android系统提供的一个媒体播放显示和控制的控件。本课时介绍VideoView播放视频的使用方法。
Android手机关于Camera的使用,一是拍照,二是摄像,由于Android提供了强大的组件功能,为此对于在Android手机系统上进行Camera的开发,我们可以使用两类方法:一是借助Intent和MediaStroe调用系统Camera App程序来实现拍照和摄像功能,二是根据Camera API自写Camera程序。本课时主要介绍Camera的使用方法。
由于对手机娱乐功能方面的需要,在Android系统中都是自带系统照相机程序的,直接调用系统的照相机程序是最便捷实现照相机功能的方式。本课时主要介绍系统拍照功能的使用方法。
在进行多媒体播放时,我们知道使用MediaPlayer类来进行处理,而对于多媒体的采样录制,在Android中使用了MediaRecorder类来进行处理。本课时主要介绍MediaRecorder录音的使用方法。
当一个Android项目开发完成后,需要打包和签名处理,这样才能放到手机中使用,当然也可以发布到Google Play上去让大家下载、让自己赚钱。本课时主要介绍应用程序打包发布的使用方法。
项目开发流程是做一个项目的开始,至关重要,它关系到整个项目的需求、设计、开发、测试和产品发布等等因素。本课时主要介绍项目开发的基本流程。
在Android应用中创建界面通常有两种方法,一种是使用xml创建布局,另一种则是在java代码中实现,与使用xml文件相比,它更加灵活、更加动态。本课时主要介绍界面的基本设计方法。
SQLite是一种流行的关系型数据库管理系统(Relational Database Management System, RDBMS),它具有以下特征:开源、符合标准、轻量级、单一层等。本课时主要介绍SQLite的使用方法。
本课时主要介绍记事本实例之呈现日志代码实现。
本课时主要介绍记事本实例之编辑添加日志代码实现。
本课时主要介绍记事本实例之添加日志附加媒体代码实现。
本课时主要介绍记事本实例之播放日志附加媒体代码实现。
本课时介绍什么是超级手电筒,有哪些功能,以及为后面的开发做一些准备工作。
本课时介绍超级手电筒的程序架构以及热点区域的布局。
本课时通过实例讲解闪光灯的控制方法和drawable资源。
本课时通过实例讲解超级手电筒的主界面布局和UI切换。
本课时学习多线程的使用,通过实例学会设置和获取屏幕亮度。
本课时讲解摩尔斯电码的理论,通过实例学会如何用闪光灯发送摩尔斯电码。
本课时通过实例讲解渐变drawable资源的用法和自定义控件的实现和使用。
本课时通过实例讲解搭建彩色灯的UI,根据彩色灯颜色设置自定义控件的文本颜色。
本课时通过实例讲解搭建彩色灯的UI,根据彩色灯颜色设置自定义控件的文本颜色。
本课时通过实例讲解搭建警灯的UI、控制警灯、实现窗口按两下退出。
本课时通过实例讲解搭建设置的UI、动态调整警示灯和警灯的闪烁频率及添加和删除快捷方式。
只有成为VIP会员才能提问&回复,快吧!如果你还没有账号你可以一个账号。
添加新技术问题
课程 [Android用户界面之常用控件ListView(1)]
中已存在问题
添加新技术问题
问题描述越详细,被解答的速度越快
有新回答时请邮件提醒我
着急,拜托快点
不急,慢慢解决
关联课程 [Android用户界面之常用控件ListView(1)]
服务热线:400-678-8266}

我要回帖

更多关于 清空listview 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信