2012-11-20 26 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'。 –