如何在android中实现一个按钮onclick的两个功能

时间:2011-10-17 04:38:17

标签: java android onclick

你好我在android的bluetooth工作,我有一个按钮点击它执行2个活动。第一次点击它应该执行返回空气,在第二次点击它应该执行设定点读取。但是在我的代码中只运行了一个活动,并且在第二次点击时它没有进入第二个活动。在我的代码中,只有一个处理程序来执行这两个活动。我应该有两个处理程序来执行这两项活动吗?

这是我的代码: 这预先形成了第一次点击:

private void returnair() { 
     //return air
     Log.d(TAG, "returnair()");
     setContentView(R.layout.dummy);
     load = (Button) findViewById(R.id.button1);
     load.setOnClickListener(new OnClickListener() {
         @Override
         public void onClick(View v) {
             String text = "16 16 36 01 10 00 00 00 00 00 00 00 00 00 00 00 00 88 47 ";
             sendMessage(text);
         }
     });
     mChatService = new blootoothchatservice(this, mHandler);
     mOutStringBuffer = new StringBuffer("");
}

执行第二次点击:

private void setpoint() {
        //reading setpoint
        Log.d(TAG, "setpoint()");
        setContentView(R.layout.dummy); 
        load = (Button) findViewById(R.id.button1);
        load.setOnClickListener(new OnClickListener() {
             @Override
             public void onClick(View v) {
                 String resp = "16 16 36 07 02 00 00 00 00 00 00 00 00 00 00 00 00 B7 93 ";
                 sendsetresponses(resp);
             }
        });
        mChatService = new blootoothchatservice(this, mHandler);
        mOutStringBuffer = new StringBuffer("");
}

1 个答案:

答案 0 :(得分:7)

应用程序如何知道按钮被点击一次还是两次?您需要存储是否已运行第一个函数,如果已运行第二个函数。这个逻辑可以添加到一次点击事件,如下面的伪代码。

global int click = 0;

onClick() {
    if (click == 0) {
        click = 1;
        returnair();
    }
    else
        setpoint();
}