15

誰かができるなら、あなたの助けが必要です。それは私の解決策にとって素晴らしいことです。可能かどうかはわかりませんが、どうにかしてこれを修正したいと思います..実際には、単一のボタンクリックイベントに2つのメソッド、単純なクリックと長いクリックを実装したいと思います。ここに私のコード::

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;
    }
});

したがって、ここで何か問題が発生しています。シングルクリックでも完全に機能し、ロングクリックも機能しますが、問題は、ロングクリックイベントの後に、上記の onClick メソッドのコードで定義されているように MainActivity も開始することです..

それはすべきではありません.return falseもそこにありますが、まだ私が望むようには機能していません..だから、誰かがそれを解決するのを手伝ってください..

前もって感謝します..

4

1 に答える 1

44

onLongClickメソッドに戻る 必要があると思いますTRUE-タッチイベントが消費され、それ以上のイベント処理は必要ないことをフレームワークに伝えます。

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

        return true;    // <- set to true
    }
});
于 2012-11-20T09:46:14.930 に答える