我的代码中有这个,而且.setPressed没有工作:
Button btndesligado = (Button) findViewById(R.id.button12);
btndesligado.setOnClickListener(new OnClickListener() { //Botão para pôr silêncio!
@Override
public void onClick(View v) {
btndesligado.setPressed(true);
som = false;
vibrar = false;
}
});
有什么问题?它没有给我任何错误,当我打开它并单击它时它不起作用。按下一次后按下按钮就可以了。
答案 0 :(得分:2)
Android正在更改setPressed
onClickEvent
所以改变你的代码这段代码
btndesligado.setOnClickListener(new OnClickListener() { //Botão para pôr silêncio!
@Override
public void onClick(View v) {
btndesligado.setPressed(true);
som = false;
vibrar = false;
}
});
到这个
btndesligado.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// show interest in events resulting from ACTION_DOWN
if (event.getAction() == MotionEvent.ACTION_DOWN) return true;
// don't handle event unless its ACTION_UP so "doSomething()" only runs once.
if (event.getAction() != MotionEvent.ACTION_UP) return false;
btndesligado.setPressed(true);
som = false;
vibrar = false;
return true;
}
});
答案 1 :(得分:1)
您的代码似乎没有错,它正如您所做的那样,它将视图的内部状态设置为"按下"或false以恢复视图'来自先前设定的内部状态"按下"州。并且您已将其置于按钮onClick
内意味着它仅在您按下按钮后才会起作用,
如果您想要按下或恢复,请执行此操作,
Button btndesligado = (Button) findViewById(R.id.button12);
btndesligado.setPressed(true);
btndesligado.setOnClickListener(new OnClickListener() { //Botão para pôr silêncio!
@Override
public void onClick(View v) {
som = false;
vibrar = false;
}
});
答案 2 :(得分:0)
试试这种方式。
btndesligado.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
btndesligado.setPressed(true);
som = false;
vibrar = false;
}
});