浏览 6852 次
锁定老帖子 主题:ListView 中 item 循环显示
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-02-03
ListView 中 item 循环显示
[功能] 何谓循环显示 即 1. 此刻的 item 为最后一个 当继续往下翻的话 就会回到第一个 2. 而此刻的 item 是第一个 当继续往上翻 就会变为最后一个
[原理] 1. 一个 int ID 用于保存 选中的 item 2. 通过 onKeyDown() 捕捉ACTION 并判断是 向上 还是 向下 3. 把 二者 进行综合判断 然后设定 焦点
[代码 步骤] 1. 定义 int ID 并记录 选中的 item id int ID = 0; this.getListView().setOnItemSelectedListener(new OnItemSelectedListener(){ @Override public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) { // TODO Auto-generated method stub ID = arg2; } @Override public void onNothingSelected(AdapterView<?> arg0) { // TODO Auto-generated method stub } });
2. 通过 onKeyDown 捕捉 keyCode 假如是自己关心的按键 再根据此刻的 ID 进行相应的设定 public boolean onKeyDown(int keyCode, KeyEvent msg){ if(keyCode == msg.KEYCODE_DPAD_DOWN){ if(ID == data.length - 1 ){ this.getListView().setSelection(0); } } else if(keyCode == msg.KEYCODE_DPAD_UP){ if(ID == 0){ this.getListView().setSelection(data.length - 1); } } //super.onKeyDown(keyCode, msg); return false; }
done!
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2010-02-10
什么意思的
|
|
返回顶楼 | |
发表时间:2010-02-10
wafj1984 写道 什么意思的
如果没有这些代码的话 当item是最后一个 就不可以继续往下翻了 同理 当item是第一个 也不可以继续往上翻了 |
|
返回顶楼 | |
发表时间:2010-02-21
这个很好,目前自带的一些软件都没有这个功能,不太爽
|
|
返回顶楼 | |
发表时间:2010-03-04
如果用户是触摸,就是往下拖的惯性动作
你怎么捕捉呢? |
|
返回顶楼 | |
发表时间:2010-03-05
leelight 写道 如果用户是触摸,就是往下拖的惯性动作
你怎么捕捉呢? 可以用onFlipper() 捕捉啊 不过我因为是试验这个功能 所以没支持 但是难度也不大 |
|
返回顶楼 | |