自定义android listview,具有刷新和向左滑动功能
我创建了一个自定义listview,在其中覆盖onTouchEvent,这样我就可以创建自己的pull来刷新listview。我检查用户是否在列表视图的顶部,然后检查用户是否向下滑动阈值长度,然后刷新。我还需要能够向左滑动listview中的每一行来删除它。我厌倦了使用View.OnTouchListener()并重写ontouch。我将View.OnTouchListener()附加到listview中的每一行。我将它们附加到baseadapter的getview()中。当我同时使用两个侦听器时,我的程序崩溃。为什么?我还能怎么做?基本上,我需要为整个listview以及listview中的每一行附加一个侦听器。这可能吗 这就是如何在getview()方法中将侦听器附加到listview中的每一行自定义android listview,具有刷新和向左滑动功能,android,android-listview,ontouchlistener,Android,Android Listview,Ontouchlistener,我创建了一个自定义listview,在其中覆盖onTouchEvent,这样我就可以创建自己的pull来刷新listview。我检查用户是否在列表视图的顶部,然后检查用户是否向下滑动阈值长度,然后刷新。我还需要能够向左滑动listview中的每一行来删除它。我厌倦了使用View.OnTouchListener()并重写ontouch。我将View.OnTouchListener()附加到listview中的每一行。我将它们附加到baseadapter的getview()中。当我同时使用两个侦听器
你能显示两个侦听器的代码以及如何连接它们吗?@Salauyou好的,我已经发布了它们它们各自工作,但当我将它们组合在一起时,我的应用程序失败,在运行时或应用程序启动后立即崩溃?@Salauyou-当我尝试在列表视图上滚动时,它崩溃
convertView.setOnTouchListener( new View.OnTouchListener() {
float mDownX;
private int mSwipeSlop = -1;
float y;
@Override
public boolean onTouch(final View v, MotionEvent event) {
if (mSwipeSlop < 0) {
mSwipeSlop = ViewConfiguration.get(context).
getScaledTouchSlop();
}
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
Log.d("", "this was clicked " + data.get(position));
mDownX = event.getX();
break;
case MotionEvent.ACTION_CANCEL:
case MotionEvent.ACTION_MOVE:
{
float x = event.getX() + v.getTranslationX();
float deltaX = x - mDownX;
float deltaXAbs = Math.abs(deltaX);
v.setTranslationX((x - mDownX));
v.setAlpha(1 - deltaXAbs / v.getWidth());
}
break;
case MotionEvent.ACTION_UP:
{
data.remove(position);
Log.d("", "ON UP PRESSED");
notifyDataSetChanged();
return true;
}
}
return true;
}
});
l=(CustomList )findViewById(R.id.listView1);
A= new ListBaseAdapter(names,this);
l.setAdapter(A);
l.setRefreshListener(this);