OnLongClickListener不工作 [英] OnLongClickListener not working

查看:874
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆