您的位置:首页 > 移动开发 > Android开发

Android小項目之--ListView與ListAcitivity完善論壇管理效果2(附源碼)

2010-06-07 23:34 477 查看
  ListAcitivity 类型布局用来配置应用程序,主要为显示菜单列表、列表明细项目,假如让程序继承 ListActivity ,可以实现以下的方法:

getListAdapter()  取得目前列表项目的 Adapter
getListView()  取得目前列表的 View
getSelectedItemId()  取得目前 Keypad 所选择的 Item ID
getSlectedItemPosition()  取得目前 KeyPad 所选择的Item 索引值
onContentChanged()  ListAcitivity 列表内容更动事件
onListItemClick(ListView ,View ,int,long)  User在列表项目单击触发事件
onRestoreInstanceState(Bundle)  当还原至此实例状态事件
setListAdapter(ListAdapter)  设置 ListAcitivity 的列表项目
setSelection(int)    设置所选择的项目  

  ListAcitivity 默认并不一定要像继承自 Acitivity一样,必须使用 seContentView 来设置版型 Layout 才能显示页面,ListAcitivity 可以在不必重写 Protected void onCreate(Bundle savedInstanceState)的情况下,直接将列表加载至 ListAcitivity 中,非常便利,常用在如投票选项选择、多个项目列表条列显示、文件资源管理等。

  今天此程序将扩展上篇文章遗留下的问题,完善整个实例的全部功能,需要完成的功能清单如下:

实例继承自 ListAcitivity 实现功能;
在另外一个类里面实现 BaseAdapter 重写它四个方法;
得到 ListView 控件里面包含所有控件各自的事件,并为其设置事件监听器;
长按时如何得到所触发的项,并进行相应的操作,实现长按事件的点击事件。

清单如上,下面是实例运行效果图:

代码

public boolean onContextItemSelected(MenuItem item) {
// TODO Auto-generated method stub
switch (item.getItemId()) {
case 0:
ViewHolder.my_TextView=(TextView)myRelative.getChildAt(1);
ViewHolder.my_TextView.setBackgroundColor(Color.BLUE);
return true;
case 1:
ViewHolder.my_TextView=(TextView)myRelative.getChildAt(1);
Toast.makeText(this, ViewHolder.my_TextView.getText()+"添加置頂效果", 1000).show();
return true;

}
return super.onContextItemSelected(item);
}

这里有必要解释一下,这一段实现菜单的选择功能,应该放在 Activity 代码类里面,因为上面我们通过在此类中声明一个 RelativeLayout 然后当点击时我们即为它赋值,点击完某一菜单按钮后即返回 Activity 页面,得到布局,我们在这里要实现的只有通过操作相对布局控件里面包含的控件然后进行操作即可完全实现 这一功能,在布局控件里面找控件可用此方法 getChildAt(int index);注意上面条件分支语句不是跳出而是返回一个真。

到此,此功能己经得到实现,在此要感谢以下两人对我的帮助:QQ:182041935---QQ120460734

源码下载:/Files/TerryBlog/listViewDemo.rar

如果你有什么疑问或者建议 你可以 QQ285735942 或 Email:terryyhl@gmail.com
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: