android listView 显示数据 单击 长按
2012-09-03 10:45
525 查看
参考:http://www.cnblogs.com/allin/archive/2010/05/11/1732200.html
一、最简单的listView--ArrayAdapter
1、ArrayAdapter(Context context, int textViewResourceId, List<T> objects)
textViewResourceId:布局文件,可以是系统自带;
objects:泛型对象。
2、补充,ArrayList即动态数组,
例:
ArrayLIst List = new ArrayList();
for(int i=0;i<10;i++) List.add(i);
List.RemoveAt(5);
3、补充:为什么要用List list = new ArrayList();不用ArrayList list = ArrayList();
问题就在于List有多个实现类,现在你用的是ArrayList,也许哪一天你需要换成其它的实现类,如 LinkedList或者Vector等等,这时你只要改变这一行就行了:
List list = new LinkedList(); 其它使用了list地方的代码根本不需要改动。
假设你开始用 ArrayList alist = new ArrayList(), 这下你有的改了,特别是如果你使用了 ArrayList特有的方法和属性。
http://www.cnblogs.com/aisiteru/articles/1151874.html
4、补充:泛型,类比c++模板 ,如list<string>
5、补充:类Activity中的setContentView(),android开发中如果想实现布局页面的跳转可以使用setContentView()设置跳转到需要的布局文件上面。
6、补充,
eclipse 编码时 代码上的横线 今天再使用Eclipse编码时,发现有些变量或类名上有些莫名其妙的横线,如下图所示:
现在才知道这些横线的意思:这些横线标示出来的类或方法,说明是旧版本中的,当前版本不建议使用。
二、一般用于数据库SimpleCursorAdapter
public SimpleCursorAdapter (Context context, int layout, Cursor c, String[] from, int[] to)
后面两个参数,一个包含数据库的列的String型数组,一个包含布局文件中对应组件id的int型数组。其作用是自动的将String型数组所表示的每一列数据映射到布局文件对应id的组件上。
/**刷新listView*/
private void refreshLV()
{
DatabaseHelper dbHelper = new DatabaseHelper(MainActivity.this ,null ,null ,1);//创建数据库
dbHelper.getReadableDatabase();
myCursor = dbHelper.getCursor();
SimpleCursorAdapter myAdapter=new SimpleCursorAdapter
(
MainActivity.this,
R.layout.main_vlist,
myCursor,
new String[]{DatabaseHelper.FIELD_ID,DatabaseHelper.FIELD_EVENT_NAME,DatabaseHelper.FIELD_REMIND_TIME},
new int[]{R.id.eventIdTV,R.id.eventNameTV,R.id.remindTimeTV} //该参数所代表的控件在第二个参数所代表的布局文件中定义
);
displayLV.setAdapter(myAdapter);
dbHelper.close();
}
/**刷新listView*/
三、单击ListView的某项
myListView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
myCursor.moveToPosition(arg2);
_id = myCursor.getInt(0);
myEditText.setText(myCursor.getString(1));
}
});
四、长按(长按弹出AlertDialog)
private ListView displayLV;
displayLV.setOnItemLongClickListener(new OnItemLongClickListener()
{
public boolean onItemLongClick(AdapterView<?> arg0, View arg1, final int arg2, long arg3)//arg2点击的item对应表中的_id,arg3被点击的行号
{
// TODO Auto-generated method stub
DatabaseHelper dbHelper = new DatabaseHelper(MainActivity.this ,null ,null ,1);//创建数据库
dbHelper.getReadableDatabase();
myCursor = dbHelper.getCursor();
myCursor.moveToPosition(arg2);//移到数据库的第arg2行
final int deleteId = myCursor.getInt(0);//第0列第2行对应的id
dbHelper.close();
new AlertDialog.Builder(MainActivity.this)
.setTitle("删除提醒")
.setMessage
(
"确定删除" +
"<" +
myCursor.getString(myCursor.getColumnIndex(DatabaseHelper.FIELD_EVENT_NAME)) +
">?"
)
.setPositiveButton
(
"确定",
new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog,int which)
{
//结合myCursor.moveToPosition(arg2),myCursor.getInt(0)表示获取arg2行第0列对应的数据(该数据以整型返回,实际就是_id)
DatabaseHelper dbHelper = new DatabaseHelper(MainActivity.this ,null ,null ,1);//创建数据库
dbHelper.delete(deleteId);
dbHelper.close();
refreshLV();
}
}
)
.setNegativeButton
(
"取消",
new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog,int which) { }
}
)
.show();
return true;
}
});
/**长按displayLV(listView)某项的响应*/
一、最简单的listView--ArrayAdapter
1、ArrayAdapter(Context context, int textViewResourceId, List<T> objects)
textViewResourceId:布局文件,可以是系统自带;
objects:泛型对象。
2、补充,ArrayList即动态数组,
例:
ArrayLIst List = new ArrayList();
for(int i=0;i<10;i++) List.add(i);
List.RemoveAt(5);
3、补充:为什么要用List list = new ArrayList();不用ArrayList list = ArrayList();
问题就在于List有多个实现类,现在你用的是ArrayList,也许哪一天你需要换成其它的实现类,如 LinkedList或者Vector等等,这时你只要改变这一行就行了:
List list = new LinkedList(); 其它使用了list地方的代码根本不需要改动。
假设你开始用 ArrayList alist = new ArrayList(), 这下你有的改了,特别是如果你使用了 ArrayList特有的方法和属性。
http://www.cnblogs.com/aisiteru/articles/1151874.html
4、补充:泛型,类比c++模板 ,如list<string>
5、补充:类Activity中的setContentView(),android开发中如果想实现布局页面的跳转可以使用setContentView()设置跳转到需要的布局文件上面。
6、补充,
eclipse 编码时 代码上的横线 今天再使用Eclipse编码时,发现有些变量或类名上有些莫名其妙的横线,如下图所示:
现在才知道这些横线的意思:这些横线标示出来的类或方法,说明是旧版本中的,当前版本不建议使用。
二、一般用于数据库SimpleCursorAdapter
public SimpleCursorAdapter (Context context, int layout, Cursor c, String[] from, int[] to)
后面两个参数,一个包含数据库的列的String型数组,一个包含布局文件中对应组件id的int型数组。其作用是自动的将String型数组所表示的每一列数据映射到布局文件对应id的组件上。
/**刷新listView*/
private void refreshLV()
{
DatabaseHelper dbHelper = new DatabaseHelper(MainActivity.this ,null ,null ,1);//创建数据库
dbHelper.getReadableDatabase();
myCursor = dbHelper.getCursor();
SimpleCursorAdapter myAdapter=new SimpleCursorAdapter
(
MainActivity.this,
R.layout.main_vlist,
myCursor,
new String[]{DatabaseHelper.FIELD_ID,DatabaseHelper.FIELD_EVENT_NAME,DatabaseHelper.FIELD_REMIND_TIME},
new int[]{R.id.eventIdTV,R.id.eventNameTV,R.id.remindTimeTV} //该参数所代表的控件在第二个参数所代表的布局文件中定义
);
displayLV.setAdapter(myAdapter);
dbHelper.close();
}
/**刷新listView*/
三、单击ListView的某项
myListView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
myCursor.moveToPosition(arg2);
_id = myCursor.getInt(0);
myEditText.setText(myCursor.getString(1));
}
});
四、长按(长按弹出AlertDialog)
private ListView displayLV;
displayLV.setOnItemLongClickListener(new OnItemLongClickListener()
{
public boolean onItemLongClick(AdapterView<?> arg0, View arg1, final int arg2, long arg3)//arg2点击的item对应表中的_id,arg3被点击的行号
{
// TODO Auto-generated method stub
DatabaseHelper dbHelper = new DatabaseHelper(MainActivity.this ,null ,null ,1);//创建数据库
dbHelper.getReadableDatabase();
myCursor = dbHelper.getCursor();
myCursor.moveToPosition(arg2);//移到数据库的第arg2行
final int deleteId = myCursor.getInt(0);//第0列第2行对应的id
dbHelper.close();
new AlertDialog.Builder(MainActivity.this)
.setTitle("删除提醒")
.setMessage
(
"确定删除" +
"<" +
myCursor.getString(myCursor.getColumnIndex(DatabaseHelper.FIELD_EVENT_NAME)) +
">?"
)
.setPositiveButton
(
"确定",
new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog,int which)
{
//结合myCursor.moveToPosition(arg2),myCursor.getInt(0)表示获取arg2行第0列对应的数据(该数据以整型返回,实际就是_id)
DatabaseHelper dbHelper = new DatabaseHelper(MainActivity.this ,null ,null ,1);//创建数据库
dbHelper.delete(deleteId);
dbHelper.close();
refreshLV();
}
}
)
.setNegativeButton
(
"取消",
new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog,int which) { }
}
)
.show();
return true;
}
});
/**长按displayLV(listView)某项的响应*/
相关文章推荐
- android listView 显示数据 单击 长按
- Android ListView最佳处理方式,ListView拖动防重复数据显示,单击响应子控件
- Android ListView最佳处理方式,ListView拖动防重复数据显示,单击响应子控件
- Android ListView最佳处理方式,ListView拖动防重复数据显示,单击响应子控件
- Android ListView从SQLLite中读取数据并显示,响应单击事件
- [转]Android ListView最佳处理方式,ListView拖动防重复数据显示,单击响应子控件
- Android ListView最佳处理方式,ListView拖动防重复数据显示,单击响应子控件
- Android ListView最佳处理方式,ListView拖动防重复数据显示,单击响应子控件
- Android应用中使用ListView实现数据列表显示(传智播客视频笔记)
- Android ListView 显示多种数据类型
- 一起学android之设置ListView数据显示的动画效果(24)
- Android 自定义ListView只显示第一条数据的问题
- android数据库操作(三)-----用listview显示数据库数据
- android第十六步采用ListView实现数据列表显示
- Android 下载模块,使用Xutils3 的下载功能,Activity和services数据交互,listview显示下载进度
- Android-使用ListView把SQLite中的数据显示至屏幕
- Android学习 (十八) 用GSON解析JSON数据并在ListView中显示
- Android ListView常用属性及数据绑定显示
- 今天学习了怎么读取Android数据库读取数据,用ListView将其显示出来
- android开发教程之listview显示sqlite数据