Android 从已触摸的列表项获取文本视图
我想获取/设置Android 从已触摸的列表项获取文本视图,android,listview,Android,Listview,我想获取/设置列表项的特定TextView的值,但无法捕获TextView。我的列表项目在这里: 这是我的onTouch(): 当我滚动列表时,一次可以看到5或6个项目。在他们当中,我得到了第一个和最后一个。但是我想从触摸过的项目中查看文本视图。根据: 公共摘要无效onItemClick(AdapterView父视图、视图、, 内部位置,长id) 当此AdapterView中的项已被删除时调用的回调方法 被点击了 如果需要,实现者可以调用getItemAtPosition(position)
列表项的特定TextView
的值,但无法捕获TextView
。我的列表项目在这里:
这是我的onTouch()
:
当我滚动列表时,一次可以看到5或6个项目。在他们当中,我得到了第一个和最后一个。但是我想从触摸过的项目中查看文本视图。根据:
公共摘要无效onItemClick(AdapterView父视图、视图、,
内部位置,长id)
当此AdapterView中的项已被删除时调用的回调方法
被点击了
如果需要,实现者可以调用getItemAtPosition(position)
访问与所选项目关联的数据
参数
父级:发生单击的AdapterView
视图:在AdapterView中单击的视图(这将是
适配器提供的视图)
位置:视图在适配器中的位置。id:的行id
已单击的项目
您可以调用listview.setOnItemClickListener(…)
,并将新的AdapterView.OnItemClickListener
传递给方法和onItemClick方法体,上面解释了调用:
view.findViewById(R.id.txtProductName)
获取该项目中的文本视图。您对在touch中实现此功能有任何具体要求吗?无法从onItemClick listener或适配器clickListener内部完成?是的,我必须在onTouch中完成,因为我在水平拖动时接收到动作\u MOVE
。您可以使用listView.setOnItemClickListener
如果使用onItemClick listener
,我必须在onTouch中完成,当我接收到动作时,当它是水平拖动时,你可以同时添加它们。就在你处理移动的时候,在你的onTouch方法中返回true,其他明智的方法返回false。@CoolBrain,看在上帝的份上,你能切换到recyclerview吗?:)recyclerview能解决我的问题吗?(对不起,我迟到了)
listView.setOnTouchListener(new CountingTouchListener(listView, position, mContext, holder.orderQty));
public boolean onTouch(View view, MotionEvent motionEvent) {
try {
touchAny(view);
if(motionEvent.getAction() == MotionEvent.ACTION_DOWN ){
touchDown(motionEvent);
}else if (motionEvent.getAction() == MotionEvent.ACTION_MOVE){
touchMove(view, motionEvent);
}else if(motionEvent.getAction() == MotionEvent.ACTION_UP){
touchUp(motionEvent);
}
}catch (Exception e){e.printStackTrace();}
return false;
}
private void touchMove(View view, MotionEvent motionEvent) {
TextView tv = (TextView) view.findViewById(R.id.txtOrderQty);
Log.i(TAG, "val: "+tv.getText().toString()); //gives me value of txtOrderQty from the list_item which is the first of current visible items
Log.i(TAG, txtOrderQty.getText().toString()); //gives me value of txtOrderQty from the list_item which is the last of current visible items
}
view.findViewById(R.id.txtProductName)