Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 显示按钮点击阵列(训练应用程序的设置和重复次数)_Java_Android - Fatal编程技术网

Java 显示按钮点击阵列(训练应用程序的设置和重复次数)

Java 显示按钮点击阵列(训练应用程序的设置和重复次数),java,android,Java,Android,我正在尝试创建一个训练应用程序的实体模型,该应用程序可以跟踪训练的设置和重复次数 以下是布局的外观: 它的工作原理是,当有人按下NEW时,它会创建一个新的集合。设置激活后,按TAP键可查看您的重复次数。要结束当前设置,请再次按NEW并开始新设置。要完成所有设置,请按END。点击一系列重复后按“新建”时,它会用数字更新文本视图(测试)。这就是我要做的基本要点 我试图将数据保存在长度为5的整数数组中。数组的索引是设置的编号,索引处的值是重复次数 示例:我按NEW(数组索引为1),我点击5次(索引1

我正在尝试创建一个训练应用程序的实体模型,该应用程序可以跟踪训练的设置和重复次数

以下是布局的外观:

它的工作原理是,当有人按下NEW时,它会创建一个新的集合。设置激活后,按TAP键可查看您的重复次数。要结束当前设置,请再次按NEW并开始新设置。要完成所有设置,请按END。点击一系列重复后按“新建”时,它会用数字更新文本视图(测试)。这就是我要做的基本要点

我试图将数据保存在长度为5的整数数组中。数组的索引是设置的编号,索引处的值是重复次数

示例:我按NEW(数组索引为1),我点击5次(索引1处的值=5),我按NEW(索引2处的数组),我点击6次(索引2处的值=6),依此类推

所以我的最终数组值应该是5,6,5,3,5。我会在文本视图上显示它

以下是my Workout.java中的代码:

 public class Workout extends ActionBarActivity {

    private Button newSet;
    private Button tap;
    private Button end;
    private Integer[] score;
    int clickCount = 0;
    int tapCount = 0;
    boolean endClicked = false;
    TextView displayTest;

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

        score = new Integer[5];

        newSet = (Button)findViewById(R.id.newSetButton);

        displayTest = (TextView)findViewById(R.id.displayScore);


        newSet.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                clickCount+=1;
                if (clickCount==1) {
                    score[clickCount]= timesTapped();//replace with number of times tap is clicked
                    displayTest.append(String.valueOf(score[clickCount])); //update view
                }
                else if (clickCount==2) {
                    score[clickCount]= timesTapped(); //replace with number of times tap is clicked
                    displayTest.append(String.valueOf(score[clickCount])); //update view
                }
                else if (clickCount==3) {
                    score[clickCount]= timesTapped(); //replace with number of times tap is clicked
                    displayTest.append(String.valueOf(score[clickCount])); //update view
                }
                else if (clickCount==4) {
                    score[clickCount]= timesTapped(); //replace with number of times tap is clicked
                    displayTest.append(String.valueOf(score[clickCount])); //update view
                }
                else if (clickCount==5) {
                    score[clickCount]= timesTapped(); //replace with number of times tap is clicked
                    displayTest.append(String.valueOf(score[clickCount])); //update view
                }
            }
        });

    }

    //tap button counter method
    public int timesTapped() {

        tap =(Button)findViewById(R.id.tapButton);
        end =(Button)findViewById(R.id.endWorkoutButton);

        tap.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v) {
                tapCount+=1; //update tap count
            }
        });


        newSet.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v) {
                endClicked = true; //if button is clicked it will display
            }
        });

        if (endClicked == true) {
            return tapCount; //amount to display
        }
        else return 0;
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_workout, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
}
它在我的模拟器上运行,没有任何错误,但它没有做我认为应该做的事情。如何让实例工作

如果我想要一个集合,那么每个集合都有五个REPS值。我将如何实现这一目标?我是否要创建一个新类,然后从那里开始创建?如果是,怎么做


感谢您的帮助

朋友,你为什么要把事情复杂化!据我所知,您只需将选项卡按钮上的点击次数签名到一个数组索引,该索引保存新按钮上的点击次数!但代码与此完全无关

这其实很简单,你只需要2个计数器,一个用于你的选项卡按钮,另一个用于新建,当用户单击新建时,它会添加1,然后当用户单击选项卡时,它会将值添加到索引中,并将标志设置为true,因此在单击另一个新建按钮后,
textView
会得到更新

    int newIndex=0;
    int tabCount=0;
    int[] score=new Integer[5];
    String result;
    boolean flag=false;
    newSet.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

            if(flag){
            result+=" "+tabCount+"at"+newIndex+" ";
                textView.setText(result);}
             newIndex+=1;
            }});
    tab.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v) {
                tabCount+=1;
                score[newIndex]=tabCount;
                flag=true;
            }
        });

注意:该标志用于确保用户完成了所需的选项卡数量,但是您可以更新选项卡
onClick()
中的
textView
,但这会使
textView
内容不准确

您不会问特定问题。。。您的代码确实需要很多帮助。但你甚至不说它是干什么的。它显然不像你描述的那样。请问一个具体的问题。@Jim我想学习实现包含REPs的集合的最佳方法。现在,我很难想象它。我在下面更新了我的主要帖子,并提出了一个具体的问题。日志中写了什么?