我試圖讓我在我的自定義適配器getView添加的標籤,但事情是它給了當我試圖找回從getTag列表視圖ontouchlistener安卓
這裏我空越來越null是從代碼我的自定義適配器
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater vi = (LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.pull_refresh_list_item, null);
v.setTag(position);
}
RouteSummaryForStop i = null;
synchronized(methodLocker) {
i = bussData.get(position);
}
if (i != null) {
TextView bd = (TextView) v.findViewById(R.id.bus_destination);
TextView bn = (TextView) v.findViewById(R.id.bus_number);
;
bn.setWidth(154);
bd.setText(i.getRouteHeading());
bn.setText(i.getRouteNo());
}
return v;
}
這裏的getView是代碼,當我嘗試從列表視圖的ontouchlistener得到它:
result_list.setOnTouchListener(new OnTouchListener() {
private float startX;
private float startY;
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
startX = event.getX();
startY = event.getY();
Log.d("tag", ""+v.getTag());
break;
case MotionEvent.ACTION_UP: {
float endX = event.getX();
float endY = event.getY();
if (isAClick(startX, endX, startY, endY)) {
Log.d("click", "clicked");
Log.d("tag", ""+v.getTag());
MainActivity.result_list.setSoundEffectsEnabled(true);
checkClicked = true;
}else{
MainActivity.result_list.setSoundEffectsEnabled(false);
checkClicked = false;
if(isASwipe(startX, endX, startY, endY)){
Log.d("tag", ""+(TextView)v.getTag());
MainActivity.drawerLayout.openDrawer(Gravity.LEFT);
}else{
}
}
break;
}
}
return false;
}
});
編輯+++++
我試了getview內,但它只能捕獲ACTIONDOWN:
v.setOnTouchListener(new OnTouchListener() {
private float startX;
private float startY;
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
startX = event.getX();
startY = event.getY();
Log.d("tag", "DOWN");
break;
case MotionEvent.ACTION_UP: {
float endX = event.getX();
float endY = event.getY();
Log.d("click", "UP");
if (isAClick(startX, endX, startY, endY)) {
Log.d("click", "UP");
}else{
if(isASwipe(startX, endX, startY, endY)){
Log.d("tag", "SWIPE");
}else{
}
}
break;
}
}
return false;
}
});
你可以發佈堆棧軌跡 – Raghunandan
@Raghunandan沒有錯誤。但是Log.d(「tag」,「」+ v.getTag());總是給我null –
@Raghunandan它的作品,但我希望它在ontouch,所以我可以刷卡它。 –