私はこれを理解するのに苦労しています。私は8つのボタンのグリッドビューを持っています。現時点では、onItemClickListener を使用してボタン アクションをトリガーしていますが、これにより 2 つの問題が発生します。
1) ボタンのアクションは、ボタンが押された後に発生します。
2) 2 つのボタンを同時に押すことはできません。最初のボタンを離す必要があります。
私が学んだように、onTouchListener は私の最初の問題を解決するはずですが、どのボタンが押されたかを判断する方法はわかりません。onItemClickListener の私のコードは次のとおりです
gridview.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
Toast.makeText(Activity.this, "" + position, Toast.LENGTH_SHORT).show();
}
});
これで、どのボタンが押されたかが正確にわかりました。onTouchListener として実装するためのコードは次のとおりだと思います
gridview.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
return false;
}
}) {
MotionEvent を使用してどのボタンが押されたかを判断するにはどうすればよいですか? 「位置」を渡す前に、これはかなり簡単になりました。また、2 つ以上のボタンが同時に押された場合や別のボタンを放さずに押された場合も考慮に入れる必要があります。
これを達成する方法を知っている人はいますか?