私はボタンが を押したまま、それがAndroidのボタンリスナー
を実現している。しかし、私はそれをどのように行うことができるときはfalseに設定されている場合は、真の値を設定し、ボタンのリスナーを実装しようとしていますか?
私はボタンが を押したまま、それがAndroidのボタンリスナー
を実現している。しかし、私はそれをどのように行うことができるときはfalseに設定されている場合は、真の値を設定し、ボタンのリスナーを実装しようとしていますか?
はあなたのために、この作業を行います。
ボタンに登録public class ButtonDownListener implements OnTouchListener{
boolean pressed = false;
public boolean onTouch(View v, MotionEvent event){
if(event == MotionEvent.ACTION_DOWN){
pressed = true;
}
else if(event == MotionEvent.ACTION_UP){
pressed = false;
}
return true;
}
}
:このように
button.setOnTouchListener(new ButtonDownListener());
:
public void foo() {
Button mButton = (Button) findViewById(R.id.mButton)
mButton.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch(event.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN:
mBoolean = true;
return true;
case MotionEvent.ACTION_UP:
mBoolean = false;
return true;
default:
return false;
}
}
});
}
は確かに上記のコードでマルチスレッド操作でいくつかの問題があります(例えば、問題のブールは原子などであるべきです)が、典型的な実装です単一のタッチリスナのn。マルチタッチリスナーはスイッチにいくつかのケースを追加しますが、アイデアは変わりません。
私はそれを動作させることができません – user1293780
どういう意味ですか?コンパイルされません。ブール値は変更されません。このブール値の影響を受けるコードは実行されていませんか? – JRaymond
私はそれを動作させることができません:( – user1293780
JRaymondと私はほぼ同じ提案をしています...あなたのために働いていないものは –
今私は "MotionEvent.Action_UP" MotionEvent.1 " – user1293780