2012-11-20 27 views
9

我需要你的帮助,如果有人可以的话,这对我的解决方案来说是件好事。 我不知道它是否可能,但我想尝试解决这个问题.. 其实我想实现两个方法单按钮单击事件,其简单的点击和长按,在这里我的代码: :setOnClickListener和setOnLongClickListener调用单个按钮问题

homebutton = (ImageButton) findViewById(R.id.home_icon); 
homebutton.setOnClickListener(new OnClickListener() { 
    public void onClick(View arg0) { 
     Intent intent = new Intent(context, MainActivity.class); 
     startActivity(intent); 
    } 
}); 
homebutton.setOnLongClickListener(new OnLongClickListener() { 
    public boolean onLongClick(View arg0) { 
     Toast.makeText(getApplicationContext(), "Long Clicked " , Toast.LENGTH_SHORT).show(); 
     return false; 
    } 
}); 

所以,在这里我得到一些错误,甚至单一的点击是可以正常使用,并且长按也在努力,但问题是,经过长期的点击事件及其也开始MainActivity中的onClick上面代码中定义方法..

不应该这样做,返回false也存在,仍然没有工作,因为我想.. 所以,有人请帮助我解决它..

在此先感谢..

+0

当然会做同样的事情,因为我得到完美的答案..谢谢! –

回答

26

我相信你需要TRUEonLongClick方法 - 告诉了触摸事件被消耗的框架,并没有进一步的事件处理是必需的。

homebutton.setOnLongClickListener(new OnLongClickListener() { 
    public boolean onLongClick(View arg0) { 
     Toast.makeText(getApplicationContext(), "Long Clicked " , 
       Toast.LENGTH_SHORT).show(); 

     return true; // <- set to true 
    } 
}); 
+0

感谢哥们,它工作完美..理解代码中的愚蠢错误..但是,谢谢.. –

+0

是地图API v1吗?我正在与v2合作;它是'OnMapLongClickListener'和'onMapLongClick(LatLng pos)'方法返回'void'。 –