在ListView中,有一个OnTouch()事件响应函数,现在需要在ACTION_DOWN时,获取当前选中的ListView Item的Position,不知能否实现? 我现在是直接用listView.getSelectedItemPosition()来获取当前选中的Item Position,但是返回-1,意味着在发生ACTION_DOWN时,Item还处于未选中状态,是这样吗?是否还有其他方法可以得到这个Position值。 注:不要所在Onclick事件中可以获取,这个是在ACTION_UP时才触发的,而我现在需要的是在ACTION_DOWN时就获取这个Position。
解决方案 »
- android 在配置文件中给textview设置默认文字是“@xxxx”会报错
- 如果我想把tab放在左边,应该怎么实现?请各位大侠帮帮忙
- (Android)求助!界面的布局
- 怎么添加有米广告?
- 线程wait, notify使用错误java.lang.IllegalMonitorStateException
- 做一个校园导航系统,有几个问题 求助高手
- 求救:achartengine画折线图时,如何固定y坐标的值
- android怎么让AlertDialog浮在锁屏的上方
- Android 4.X的手机如何获取菜单栏高度啊
- android listview滚动加载数据问题
- 怎么在A(程序)发送keyback事件给B
- 在Android 上的WebView 里的flashplayer的本地权限是怎样设?
mViewHolder.close.setTag(position);
mViewHolder.close.setOnTouchListener(this);
你看看你的模式是不是CHOICE_MODE_SINGLE
这些都试试过了,都没用。Log.v(TAG, "SelectedItem = " + mListView.getSelectedItem());
Log.v(TAG, "SelectedItemId = " + mListView.getSelectedItemId());
Log.v(TAG, "Position1 = " + mListView.getCheckedItemPosition());
Log.v(TAG, "Position2 = " + mListView.getSelectedItemPosition());
返回:
SelectedItem = null
SelectedItemId = -9223372036854775808
Position1 = -1
Position2 = -1
mListView.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
int action = event.getAction();
switch (action) {
case MotionEvent.ACTION_DOWN:
Log.d(TAG, "== ACTION_DOWN ==");
...
Log.v(TAG, "SelectedItem = " + mListView.getSelectedItem());
Log.v(TAG, "SelectedItemId = " + mListView.getSelectedItemId());
Log.v(TAG, "Position1 = " + mListView.getCheckedItemPosition());
Log.v(TAG, "Position2 = " + mListView.getSelectedItemPosition());
break;
case MotionEvent.ACTION_MOVE:
Log.d(TAG, "== ACTION_MOVE ==");
...
break;
case MotionEvent.ACTION_UP:
Log.d(TAG, "== ACTION_UP ==");
...
break;
}
return false;
}
});
mListView.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
int action = event.getAction();
switch (action) {
case MotionEvent.ACTION_DOWN:
Log.d(TAG, "== ACTION_DOWN ==");
...
Log.v(TAG, "SelectedItem = " + mListView.getSelectedItem());
Log.v(TAG, "SelectedItemId = " + mListView.getSelectedItemId());
Log.v(TAG, "Position1 = " + mListView.getCheckedItemPosition());
Log.v(TAG, "Position2 = " + mListView.getSelectedItemPosition());
break;
case MotionEvent.ACTION_MOVE:
Log.d(TAG, "== ACTION_MOVE ==");
...
break;
case MotionEvent.ACTION_UP:
Log.d(TAG, "== ACTION_UP ==");
...
break;
}
return false;
}
});
但一直搞不明白,OnClick,跟OnTouch的差别
建议你试下OnClick