OnLongClickListener不工作 [英] OnLongClickListener not working
本文介绍了OnLongClickListener不工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个的ImageView
。我需要使用 onLongClickListener
的ImageView的。当我用这个code没有发生。
code:
图库=(图库论坛)findViewById(R.id.gall1); gallery.setAdapter(新ImageAdapter(MainActivity.this)); gallery.setOnItemClickListener(新OnItemClickListener()
{ @覆盖
公共无效onItemClick(
适配器视图<>父视图V,
INT位置,长的id){
// TODO自动生成方法存根 最后ImageView的ImageView的=(ImageView的)findViewById(R.id.image1);
imageView.setImageResource(imageIDs [位置]); imageView.setLongClickable(真);
imageView.setOnLongClickListener(新View.OnLongClickListener(){ @覆盖
公共布尔onLongClick(视图v){
// TODO自动生成方法存根 Toast.makeText(getApplicationContext(),龙preSS的工作,Toast.LENGTH_SHORT).show(); 返回true;
} });
imageView.setOnTouchListener(新View.OnTouchListener(){ @覆盖
公共布尔onTouch(视图V,MotionEvent事件){
// TODO自动生成方法存根
的LayoutParams =(RelativeLayout.LayoutParams)imageView.getLayoutParams(); 开关(event.getAction())
{
案例MotionEvent.ACTION_DOWN:
{
PARMS =(RelativeLayout.LayoutParams)imageView.getLayoutParams(); DX = event.getRawX() - parms.leftMargin;
DY = event.getRawY() - parms.topMargin;
}
打破;
案例MotionEvent.ACTION_MOVE:
{
X = event.getRawX();
Y = event.getRawY();
parms.leftMargin =(INT)(X-DX);
parms.topMargin =(INT)(Y - DY);
imageView.setLayoutParams(PARMS);
}
打破;
案例MotionEvent.ACTION_UP:
{ }
打破;
} 返回true;
}
});
}
});
解决方案
您需要启用长按由code:
imageView.setLongClickable(真);
imageView.setClickable(真);
最后一行可能是没有必要的,但它也使任何麻烦。
I have an ImageView
. I need to use onLongClickListener
for ImageView. When I use this code nothing happen.
Code:
gallery=(Gallery)findViewById(R.id.gall1);
gallery.setAdapter(new ImageAdapter(MainActivity.this));
gallery.setOnItemClickListener(new OnItemClickListener()
{
@Override
public void onItemClick(
AdapterView<?> parent, View v,
int position, long id) {
// TODO Auto-generated method stub
final ImageView imageView = (ImageView) findViewById(R.id.image1);
imageView.setImageResource(imageIDs[position]);
imageView.setLongClickable(true);
imageView.setOnLongClickListener(new View.OnLongClickListener(){
@Override
public boolean onLongClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(), "Long Press work", Toast.LENGTH_SHORT).show();
return true;
}
});
imageView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v,MotionEvent event) {
// TODO Auto-generated method stub
layoutParams = (RelativeLayout.LayoutParams) imageView.getLayoutParams();
switch(event.getAction())
{
case MotionEvent.ACTION_DOWN :
{
parms = (RelativeLayout.LayoutParams) imageView.getLayoutParams();
dx = event.getRawX() - parms.leftMargin;
dy = event.getRawY() - parms.topMargin;
}
break;
case MotionEvent.ACTION_MOVE :
{
x = event.getRawX();
y = event.getRawY();
parms.leftMargin = (int) (x-dx);
parms.topMargin = (int) (y - dy);
imageView.setLayoutParams(parms);
}
break;
case MotionEvent.ACTION_UP :
{
}
break;
}
return true;
}
});
}
});
解决方案
You need to enable long click by code:
imageView.setLongClickable(true);
imageView.setClickable(true);
The last line is probably not necessary but it also makes no trouble.
这篇关于OnLongClickListener不工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文