Java 使用按钮和意图计算反应时间

Java 使用按钮和意图计算反应时间,java,android,Java,Android,我目前正在进行一项研究,你可以测量参与者的反应时间。 该应用程序有用户点击按钮,产卵时,你按下启动按钮在中间。 点击了“产卵”按钮后,它就消失了,中间的按钮重新浮出水面。我想计算一下按下随机生成按钮所需的时间,以及按下所有14个随机按钮所需的时间。之后,将显示一个新的活动及其结果。 代码不是最好的,因为我很快编写了代码,而且代码质量对于研究来说并不是很必要 代码如下: 更新:尝试在开始时使用声明的变量和此代码测量时间,但它一直崩溃 mbuttonStart.setOnClickListener(

我目前正在进行一项研究,你可以测量参与者的反应时间。 该应用程序有用户点击按钮,产卵时,你按下启动按钮在中间。 点击了“产卵”按钮后,它就消失了,中间的按钮重新浮出水面。我想计算一下按下随机生成按钮所需的时间,以及按下所有14个随机按钮所需的时间。之后,将显示一个新的活动及其结果。 代码不是最好的,因为我很快编写了代码,而且代码质量对于研究来说并不是很必要

代码如下:

更新:尝试在开始时使用声明的变量和此代码测量时间,但它一直崩溃

mbuttonStart.setOnClickListener( new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                showRandomButton();
                event1 = System.currentTimeMillis();
            }
        } );

        mbutton1.setOnClickListener( new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                mbutton1.setVisibility( View.GONE );
                mbuttonStart.setVisibility( View.VISIBLE );
                test++;
                event2 = System.currentTimeMillis();
                time1 = event1 - event2;
            }
        } );

        mbutton2.setOnClickListener( new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                mbutton2.setVisibility( View.GONE );
                mbuttonStart.setVisibility( View.VISIBLE );
                test++;
                event2 = System.currentTimeMillis();
                time2 = event1 - event2;

            }
        } );

package com.example.testapp;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Random;
public class MainActivity extends AppCompatActivity {

    private Button mbutton1;
    private Button mbutton2;
    private Button mbutton3;
    private Button mbutton4;
    private Button mbutton5;
    private Button mbutton6;
    private Button mbutton7;
    private Button mbutton8;
    private Button mbutton9;
    private Button mbutton10;
    private Button mbutton11;
    private Button mbutton12;
    private Button mbutton13;
    private Button mbutton14;
    private Button mbuttonStart;
    private int random;
    ArrayList<Integer> list = new ArrayList<>();
    private int test = 0;
    private int s=0;



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

        mbutton1 = (Button) findViewById( R.id.button1 );
        mbutton2 = (Button) findViewById( R.id.button2 );
        mbutton3 = (Button) findViewById( R.id.button3 );
        mbutton4 = (Button) findViewById( R.id.button4 );
        mbutton5 = (Button) findViewById( R.id.button5 );
        mbutton6 = (Button) findViewById( R.id.button6 );
        mbutton7 = (Button) findViewById( R.id.button7 );
        mbutton8 = (Button) findViewById( R.id.button8 );
        mbutton9 = (Button) findViewById( R.id.button9 );
        mbutton10 = (Button) findViewById( R.id.button10 );
        mbutton11 = (Button) findViewById( R.id.button11 );
        mbutton12 = (Button) findViewById( R.id.button12 );
        mbutton13 = (Button) findViewById( R.id.button13 );
        mbutton14 = (Button) findViewById( R.id.button14 );
        mbuttonStart = (Button) findViewById( R.id.button15 );

        for (int i = 1; i <= 14; i++) {
            list.add(i);
        }
        Collections.shuffle(list);

        mbuttonStart.setOnClickListener( new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                showRandomButton();
            }
        } );

        mbutton1.setOnClickListener( new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                mbutton1.setVisibility( View.GONE );
                mbuttonStart.setVisibility( View.VISIBLE );
                test++;
            }
        } );

        mbutton2.setOnClickListener( new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                mbutton2.setVisibility( View.GONE );
                mbuttonStart.setVisibility( View.VISIBLE );
                test++;

            }
        } );

        mbutton3.setOnClickListener( new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                mbutton3.setVisibility( View.GONE );
                mbuttonStart.setVisibility( View.VISIBLE );
                test++;

            }
        } );

        mbutton4.setOnClickListener( new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                mbutton4.setVisibility( View.GONE );
                mbuttonStart.setVisibility( View.VISIBLE );
                test++;

            }
        } );

        mbutton5
                .setOnClickListener( new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                mbutton5.setVisibility( View.GONE );
                mbuttonStart.setVisibility( View.VISIBLE );
                test++;

            }
        } );

        mbutton6
                .setOnClickListener( new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                mbutton6.setVisibility( View.GONE );
                mbuttonStart.setVisibility( View.VISIBLE );
                test++;

            }
        } );

        mbutton7.setOnClickListener( new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                mbutton7.setVisibility( View.GONE );
                mbuttonStart.setVisibility( View.VISIBLE );
                test++;

            }
        } );

        mbutton8.setOnClickListener( new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                mbutton8.setVisibility( View.GONE );
                mbuttonStart.setVisibility( View.VISIBLE );
                test++;

            }
        } );

        mbutton9.setOnClickListener( new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                mbutton9.setVisibility( View.GONE );
                mbuttonStart.setVisibility( View.VISIBLE );
                test++;

            }
        } );

        mbutton10.setOnClickListener( new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                mbutton10.setVisibility( View.GONE );
                mbuttonStart.setVisibility( View.VISIBLE );
                test++;

            }
        } );

        mbutton11.setOnClickListener( new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                mbutton11.setVisibility( View.GONE );
                mbuttonStart.setVisibility( View.VISIBLE );
                test++;

            }
        } );

        mbutton12.setOnClickListener( new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                mbutton12.setVisibility( View.GONE );
                mbuttonStart.setVisibility( View.VISIBLE );
                test++;

            }
        } );

        mbutton13.setOnClickListener( new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                mbutton13.setVisibility( View.GONE );
                mbuttonStart.setVisibility( View.VISIBLE );
                test++;

            }
        } );

        mbutton14.setOnClickListener( new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                mbutton14.setVisibility( View.GONE );
                mbuttonStart.setVisibility( View.VISIBLE );
                test++;

            }
        } );





    }

    public void showRandomButton() {
        //Generate Random Numbers



        if (test==14){
            Intent intent = new Intent( MainActivity.this,Main2Activity.class );
            startActivity( intent );
        }
        random = list.get( s );
        s++;




            switch (random) {
                case 1:
                    mbutton1.setVisibility( View.VISIBLE );
                    mbuttonStart.setVisibility( View.GONE );
                    break;
                case 2:
                    mbutton2.setVisibility( View.VISIBLE );
                    mbuttonStart.setVisibility( View.GONE );
                    break;
                //Function 2 break;
                case 3:
                    mbutton3.setVisibility( View.VISIBLE );
                    mbuttonStart.setVisibility( View.GONE );

                    break;
                //Function 3 break;
                case 4:
                    mbutton4.setVisibility( View.VISIBLE );
                    mbuttonStart.setVisibility( View.GONE );
                    break;
                //Function 1 break;
                case 5:
                    mbutton5.setVisibility( View.VISIBLE );
                    mbuttonStart.setVisibility( View.GONE );

                    break;
                //Function 2 break;
                case 6:
                    mbutton6.setVisibility( View.VISIBLE );
                    mbuttonStart.setVisibility( View.GONE );

                    break;
                //Function 3 break;
                case 7:
                    mbutton7.setVisibility( View.VISIBLE );
                    mbuttonStart.setVisibility( View.GONE );

                    break;
                //Function 1 break;
                case 8:
                    mbutton8.setVisibility( View.VISIBLE );
                    mbuttonStart.setVisibility( View.GONE );

                    break;
                //Function 2 break;
                case 9:
                    mbutton9.setVisibility( View.VISIBLE );
                    mbuttonStart.setVisibility( View.GONE );

                    break;
                //Function 3 break;
                case 10:
                    mbutton10.setVisibility( View.VISIBLE );
                    mbuttonStart.setVisibility( View.GONE );

                    break;
                //Function 1 break;
                case 11:
                    mbutton11.setVisibility( View.VISIBLE );
                    mbuttonStart.setVisibility( View.GONE );

                    break;
                //Function 2 break;
                case 12:
                    mbutton12.setVisibility( View.VISIBLE );
                    mbuttonStart.setVisibility( View.GONE );

                    break;
                //Function 3 break;
                case 13:
                    mbutton13.setVisibility( View.VISIBLE );
                    mbuttonStart.setVisibility( View.GONE );

                    break;

                //Function 1 break;
                case 14:
                    mbutton14.setVisibility( View.VISIBLE );
                    mbuttonStart.setVisibility( View.GONE );

                    break;
                //Function 2 break;




            }

        }
    }
我试过了,但应用程序一直崩溃

mbuttonStart.setOnClickListener( new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                showRandomButton();
                event1 = System.currentTimeMillis();
            }
        } );

        mbutton1.setOnClickListener( new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                mbutton1.setVisibility( View.GONE );
                mbuttonStart.setVisibility( View.VISIBLE );
                test++;
                event2 = System.currentTimeMillis();
                time1 = event1 - event2;
            }
        } );

        mbutton2.setOnClickListener( new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                mbutton2.setVisibility( View.GONE );
                mbuttonStart.setVisibility( View.VISIBLE );
                test++;
                event2 = System.currentTimeMillis();
                time2 = event1 - event2;

            }
        } );

package com.example.testapp;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Random;
public class MainActivity extends AppCompatActivity {

    private Button mbutton1;
    private Button mbutton2;
    private Button mbutton3;
    private Button mbutton4;
    private Button mbutton5;
    private Button mbutton6;
    private Button mbutton7;
    private Button mbutton8;
    private Button mbutton9;
    private Button mbutton10;
    private Button mbutton11;
    private Button mbutton12;
    private Button mbutton13;
    private Button mbutton14;
    private Button mbuttonStart;
    private int random;
    ArrayList<Integer> list = new ArrayList<>();
    private int test = 0;
    private int s=0;



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

        mbutton1 = (Button) findViewById( R.id.button1 );
        mbutton2 = (Button) findViewById( R.id.button2 );
        mbutton3 = (Button) findViewById( R.id.button3 );
        mbutton4 = (Button) findViewById( R.id.button4 );
        mbutton5 = (Button) findViewById( R.id.button5 );
        mbutton6 = (Button) findViewById( R.id.button6 );
        mbutton7 = (Button) findViewById( R.id.button7 );
        mbutton8 = (Button) findViewById( R.id.button8 );
        mbutton9 = (Button) findViewById( R.id.button9 );
        mbutton10 = (Button) findViewById( R.id.button10 );
        mbutton11 = (Button) findViewById( R.id.button11 );
        mbutton12 = (Button) findViewById( R.id.button12 );
        mbutton13 = (Button) findViewById( R.id.button13 );
        mbutton14 = (Button) findViewById( R.id.button14 );
        mbuttonStart = (Button) findViewById( R.id.button15 );

        for (int i = 1; i <= 14; i++) {
            list.add(i);
        }
        Collections.shuffle(list);

        mbuttonStart.setOnClickListener( new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                showRandomButton();
            }
        } );

        mbutton1.setOnClickListener( new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                mbutton1.setVisibility( View.GONE );
                mbuttonStart.setVisibility( View.VISIBLE );
                test++;
            }
        } );

        mbutton2.setOnClickListener( new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                mbutton2.setVisibility( View.GONE );
                mbuttonStart.setVisibility( View.VISIBLE );
                test++;

            }
        } );

        mbutton3.setOnClickListener( new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                mbutton3.setVisibility( View.GONE );
                mbuttonStart.setVisibility( View.VISIBLE );
                test++;

            }
        } );

        mbutton4.setOnClickListener( new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                mbutton4.setVisibility( View.GONE );
                mbuttonStart.setVisibility( View.VISIBLE );
                test++;

            }
        } );

        mbutton5
                .setOnClickListener( new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                mbutton5.setVisibility( View.GONE );
                mbuttonStart.setVisibility( View.VISIBLE );
                test++;

            }
        } );

        mbutton6
                .setOnClickListener( new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                mbutton6.setVisibility( View.GONE );
                mbuttonStart.setVisibility( View.VISIBLE );
                test++;

            }
        } );

        mbutton7.setOnClickListener( new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                mbutton7.setVisibility( View.GONE );
                mbuttonStart.setVisibility( View.VISIBLE );
                test++;

            }
        } );

        mbutton8.setOnClickListener( new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                mbutton8.setVisibility( View.GONE );
                mbuttonStart.setVisibility( View.VISIBLE );
                test++;

            }
        } );

        mbutton9.setOnClickListener( new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                mbutton9.setVisibility( View.GONE );
                mbuttonStart.setVisibility( View.VISIBLE );
                test++;

            }
        } );

        mbutton10.setOnClickListener( new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                mbutton10.setVisibility( View.GONE );
                mbuttonStart.setVisibility( View.VISIBLE );
                test++;

            }
        } );

        mbutton11.setOnClickListener( new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                mbutton11.setVisibility( View.GONE );
                mbuttonStart.setVisibility( View.VISIBLE );
                test++;

            }
        } );

        mbutton12.setOnClickListener( new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                mbutton12.setVisibility( View.GONE );
                mbuttonStart.setVisibility( View.VISIBLE );
                test++;

            }
        } );

        mbutton13.setOnClickListener( new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                mbutton13.setVisibility( View.GONE );
                mbuttonStart.setVisibility( View.VISIBLE );
                test++;

            }
        } );

        mbutton14.setOnClickListener( new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                mbutton14.setVisibility( View.GONE );
                mbuttonStart.setVisibility( View.VISIBLE );
                test++;

            }
        } );





    }

    public void showRandomButton() {
        //Generate Random Numbers



        if (test==14){
            Intent intent = new Intent( MainActivity.this,Main2Activity.class );
            startActivity( intent );
        }
        random = list.get( s );
        s++;




            switch (random) {
                case 1:
                    mbutton1.setVisibility( View.VISIBLE );
                    mbuttonStart.setVisibility( View.GONE );
                    break;
                case 2:
                    mbutton2.setVisibility( View.VISIBLE );
                    mbuttonStart.setVisibility( View.GONE );
                    break;
                //Function 2 break;
                case 3:
                    mbutton3.setVisibility( View.VISIBLE );
                    mbuttonStart.setVisibility( View.GONE );

                    break;
                //Function 3 break;
                case 4:
                    mbutton4.setVisibility( View.VISIBLE );
                    mbuttonStart.setVisibility( View.GONE );
                    break;
                //Function 1 break;
                case 5:
                    mbutton5.setVisibility( View.VISIBLE );
                    mbuttonStart.setVisibility( View.GONE );

                    break;
                //Function 2 break;
                case 6:
                    mbutton6.setVisibility( View.VISIBLE );
                    mbuttonStart.setVisibility( View.GONE );

                    break;
                //Function 3 break;
                case 7:
                    mbutton7.setVisibility( View.VISIBLE );
                    mbuttonStart.setVisibility( View.GONE );

                    break;
                //Function 1 break;
                case 8:
                    mbutton8.setVisibility( View.VISIBLE );
                    mbuttonStart.setVisibility( View.GONE );

                    break;
                //Function 2 break;
                case 9:
                    mbutton9.setVisibility( View.VISIBLE );
                    mbuttonStart.setVisibility( View.GONE );

                    break;
                //Function 3 break;
                case 10:
                    mbutton10.setVisibility( View.VISIBLE );
                    mbuttonStart.setVisibility( View.GONE );

                    break;
                //Function 1 break;
                case 11:
                    mbutton11.setVisibility( View.VISIBLE );
                    mbuttonStart.setVisibility( View.GONE );

                    break;
                //Function 2 break;
                case 12:
                    mbutton12.setVisibility( View.VISIBLE );
                    mbuttonStart.setVisibility( View.GONE );

                    break;
                //Function 3 break;
                case 13:
                    mbutton13.setVisibility( View.VISIBLE );
                    mbuttonStart.setVisibility( View.GONE );

                    break;

                //Function 1 break;
                case 14:
                    mbutton14.setVisibility( View.VISIBLE );
                    mbuttonStart.setVisibility( View.GONE );

                    break;
                //Function 2 break;




            }

        }
    }
mbutnstart.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
showRandomButton();
event1=System.currentTimeMillis();
}
} );
mbutton1.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
mbutton1.设置可见性(View.GONE);
mbuttonStart.setVisibility(View.VISIBLE);
测试++;
event2=System.currentTimeMillis();
时间1=事件1-事件2;
}
} );
mbutton2.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
mbutton2.设置可见性(View.GONE);
mbuttonStart.setVisibility(View.VISIBLE);
测试++;
event2=System.currentTimeMillis();
时间2=事件1-事件2;
}
} );
包com.example.testapp;
导入androidx.appcompat.app.appcompat活动;
导入android.content.Intent;
导入android.os.Bundle;
导入android.view.view;
导入android.widget.Button;
导入java.util.ArrayList;
导入java.util.array;
导入java.util.Collections;
导入java.util.Random;
公共类MainActivity扩展了AppCompatActivity{
专用按钮MBUTON1;
私人按钮2;
专用按钮mbutton3;
专用按钮mbutton4;
专用按钮mbutton5;
专用按钮mbutton6;
专用按钮mbutton7;
专用按钮mbutton8;
专用按钮mbutton9;
专用按钮mbutton10;
专用按钮mbutton11;
专用按钮mbutton12;
私人按钮13;
专用按钮14;
私人按钮mbutnstart;
私有整数随机;
ArrayList=新建ArrayList();
私有int检验=0;
私有整数s=0;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mbutton1=(按钮)findviewbyd(R.id.button1);
mbutton2=(按钮)findviewbyd(R.id.button2);
mbutton3=(按钮)findViewById(R.id.button3);
mbutton4=(按钮)findViewById(R.id.button4);
mbutton5=(按钮)findViewById(R.id.button5);
mbutton6=(按钮)findViewById(R.id.button6);
mbutton7=(按钮)findViewById(R.id.button7);
mbutton8=(按钮)findViewById(R.id.button8);
mbutton9=(按钮)findViewById(R.id.button9);
mbutton10=(按钮)findViewById(R.id.button10);
mbutton11=(按钮)findViewById(R.id.button11);
mbutton12=(按钮)findViewById(R.id.button12);
mbutton13=(按钮)findViewById(R.id.button13);
mbutton14=(按钮)findViewById(R.id.button14);
mbuttonStart=(按钮)findViewById(R.id.button15);

对于(inti=1;i),这就是我喜欢Kotlin的原因。
measuretimeMillis{}
使用相同的按钮,每次单击后随机弹出,代码将更易于处理,对于时间计算,获取下一次单击的当前时间,并将其子结构为上一次单击的当前时间。我可以给按钮指定生成的固定位置吗?更新帖子,尝试测量时间,但应用程序不断崩溃惯性导航与制导