setPressed 不工作
Posted
技术标签:
【中文标题】setPressed 不工作【英文标题】:setPressed is not working 【发布时间】:2016-11-05 07:41:33 【问题描述】:我的代码中有这个,而 .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;
);
怎么了?它没有给我任何错误,只是当我打开它并单击它时它不起作用。应该是按一次后才按的。
【问题讨论】:
【参考方案1】: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;
);
【讨论】:
【参考方案2】:您的代码似乎没有问题,它像您一样工作,它将视图的内部状态设置为“按下”,或者将视图的内部状态从先前设置的“按下”状态恢复为 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;
);
【讨论】:
【参考方案3】:试试这个方法。
btndesligado.setOnClickListener(new View.OnClickListener()
public void onClick(View v)
btndesligado.setPressed(true);
som = false;
vibrar = false;
);
【讨论】:
现在它说要在修饰符 btndesligado 中放入 final,但即使放入 final 也不起作用。 不要将其声明为最终...通过在 onCreate 外部声明按钮或创建单独的函数来避免这种情况。有用。我已经测试过了。以上是关于setPressed 不工作的主要内容,如果未能解决你的问题,请参考以下文章
马上五十岁了,工作得很不开心,非常郁闷,工作重要还是生活重要?
随机 SQL 连接问题。工作,然后不工作,然后工作,然后 BAM!再也不会工作了?