每次我运行应用程序按钮都有效,但只能按顺序执行

时间:2014-09-14 21:05:52

标签: java android onclicklistener

公共类MyActivity扩展了Activity {

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

    Button button = (Button) findViewById(R.id.button);
    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            Intent intent = new Intent(view.getContext(),Travelling.class);
            startActivityForResult(intent, 0);



            Button button2 = (Button) findViewById(R.id.button2);
            button2.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {

                    Intent intent = new Intent(view.getContext(),Rectangles.class);
                    startActivityForResult(intent, 0);


                    Button button3 = (Button) findViewById(R.id.button3);
                    button3.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View view) {

                            Intent intent = new Intent(view.getContext(),Squares.class);
                            startActivityForResult(intent, 0);


                            Button button4 = (Button) findViewById(R.id.button4);
                            button4.setOnClickListener(new View.OnClickListener() {
                                @Override
                                public void onClick(View view) {

                                    Intent intent = new Intent(view.getContext(),Triangles.class);
                                    startActivityForResult(intent, 0);


                                    Button button5 = (Button) findViewById(R.id.button5);
                                    button5.setOnClickListener(new View.OnClickListener() {
                                        @Override
                                        public void onClick(View view) {

                                            Intent intent = new Intent(view.getContext(),Circles.class);
                                            startActivityForResult(intent, 0);


                                            Button button6 = (Button) findViewById(R.id.button6);
                                            button6.setOnClickListener(new View.OnClickListener() {
                                                @Override
                                                public void onClick(View view) {

                                                    Intent intent = new Intent(view.getContext(),Cube.class);
                                                    startActivityForResult(intent, 0);


                                                    Button button7 = (Button) findViewById(R.id.button7);
                                                    button7.setOnClickListener(new View.OnClickListener() {
                                                        @Override
                                                        public void onClick(View view) {

                                                            Intent intent = new Intent(view.getContext(),Cuboid.class);
                                                            startActivityForResult(intent, 0);

                                                            Button button8 = (Button) findViewById(R.id.button8);
                                                            button8.setOnClickListener(new View.OnClickListener() {
                                                                @Override
                                                                public void onClick(View view) {

                                                                    Intent intent = new Intent(view.getContext(),SimpleInterest.class);
                                                                    startActivityForResult(intent, 0);

                                                                    Button button9 = (Button) findViewById(R.id.button9);
                                                                    button9.setOnClickListener(new View.OnClickListener() {
                                                                        @Override
                                                                        public void onClick(View view) {

                                                                            Intent intent = new Intent(view.getContext(),UsefulFacts.class);
                                                                            startActivityForResult(intent, 0);







        }
    });
}{

}

});}});}});}});}});}});}});}});}}

好的开始......我的应用程序正常工作..........但是,任何时候我按一个随机按钮让我们说按钮3,没有任何反应。我注意到要让按钮工作,我必须在开始时按下按钮然后按下(按顺序).............当完成后按钮开始工作。我的问题是:如何让每个按钮直接触摸工作(无需从上到下按下按钮列表即可到达)

2 个答案:

答案 0 :(得分:0)

如果你有像这样的算法:

      Button button2 = (Button) findViewById(R.id.button2);
        button2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                Intent intent = new Intent(view.getContext(),Rectangles.class);
                startActivityForResult(intent, 0);


                Button button3 = (Button) findViewById(R.id.button3);
                button3.setOnClickListener(new View.OnClickListener() {

然后,当您点击button3时,您将为button2创建点击处理程序。这是不正确的,您应该在button3的点击侦听器范围之外定义button2的点击侦听器。这同样适用于您的其他按钮,因为您在代码中一直重复同样的错误。

答案 1 :(得分:0)

我的建议是让你的Activity处理onClick事件,添加所有级别的侦听器,而不是你现在正在做的事情要求您按第一个按钮以到达为第二个按钮设置OnClickListener的代码行,依此类推。

findViewById(R.id.button1).setOnClickListener(...);
findViewById(R.id.button2).setOnClickListener(...);
findViewById(R.id.button3).setOnClickListener(...);