我想获取/设置TextView
的特定list_item
的值,但我无法抓住TextView
。我的list_item
就在这里:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:id="@+id/txtProductName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Product name"
android:textColor="@color/Green"
android:textSize="20sp"
android:textStyle="bold"/>
<TextView
android:id="@+id/txtOrderQty"
android:layout_width="80dp"
android:layout_height="40dp"
android:layout_alignParentRight="true"
android:layout_marginRight="60dip"
android:gravity="right"
android:padding="5dp"
android:text="0"
android:textSize="20sp"
/>
</RelativeLayout>
<TextView
android:id="@+id/txtGenericName"
android:textStyle="italic"
android:layout_marginTop="-10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Test"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="0dp" >
<LinearLayout
android:layout_width="0dp"
android:layout_weight="5"
android:orientation="horizontal"
android:layout_height="wrap_content">
<TextView
style="@style/TextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Code:" />
<TextView
android:id="@+id/txtProductCode"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="11111" />
</LinearLayout>
<LinearLayout
android:layout_weight="5"
android:layout_width="0dp"
android:orientation="horizontal"
android:layout_height="wrap_content">
<TextView
style="@style/TextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Pack:" />
<TextView
android:id="@+id/txtPackSize"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="100gm" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<LinearLayout
android:layout_weight="5"
android:layout_width="0dp"
android:layout_height="wrap_content">
<TextView
style="@style/TextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TP:" />
<TextView
android:id="@+id/txtUnitPrice"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0tk" />
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_weight="5"
android:layout_width="0dp"
android:layout_height="wrap_content">
<TextView
style="@style/TextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="VAT:" />
<TextView
android:id="@+id/txtVat"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0tk" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
从适配器的OnTouchListener
设置getView()
。
listView.setOnTouchListener(new CountingTouchListener(listView, position, mContext, holder.orderQty));
这是我的onTouch()
:
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
}
滚动列表时,一次可以看到5个或6个项目。其中我是第一个也是最后一个。但我希望来自被触摸的项目的TextView
。
答案 0 :(得分:0)
public abstract void onItemClick(AdapterView parent,View view, int position,long id)
当此AdapterView中的项具有时要调用的回调方法 点击了。
如果需要,实施者可以调用getItemAtPosition(position) 访问与所选项目关联的数据。
参数
parent:发生点击的AdapterView。
view:已点击的AdapterView中的视图(这将是 适配器提供的视图)
position:适配器中视图的位置。 id:行的id 被点击的项目。
您可以调用listview.setOnItemClickListener(...)
并将new AdapterView.OnItemClickListener
传递给方法,并在上面解释的onItemClick方法体中调用:
view.findViewById(R.id.txtProductName)
获取该项目中的TextView。