按t按钮执行按钮时,按钮在UI中不显示为按下

时间:2015-09-22 07:06:33

标签: android

我尝试触发点击onKeyDown功能中的按钮编程,以便我可以按遥控器中的键,然后就像我点击屏幕上的按钮一样。如下所示的代码,onClickListener确实是触发器,但在用户界面中,按钮never似乎已被点击。

    public class MainActivity extends Activity{

    private Button button;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.ddd);

        button = (Button)this.findViewById(R.id.button1);
        button.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                Toast.makeText(MainActivity.this, "ddddd", Toast.LENGTH_SHORT).show();
            }

        });
    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {

        button.performClick();
        return super.onKeyDown(keyCode, event);
    }
}

3 个答案:

答案 0 :(得分:0)

使用以下

{{1}}

答案 1 :(得分:0)

您可以尝试在致电performClick时尝试更改按钮状态,例如button.setPressed(true),然后在200毫秒后使用button.setPressed(false)更改回来:

    button.postDelayed(new Runnable() {
        @Override
        public void run() {
            button.setPressed(false);
        }
    }, 200);

答案 2 :(得分:0)

尝试以下

myBtn.setPressed(true);
myBtn.invalidate();

无效应该导致重绘