【问题标题】:Every time I run the app the buttons work, but only in a sequential order每次我运行应用程序时,按钮都会起作用,但只是按顺序
【发布时间】:2014-09-14 21:05:51
【问题描述】:

公共类 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);







        }
    });
}{

}

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

好的开始......我的应用程序工作.............但是,无论何时我按下随机按钮,让我们说 button3,什么都没有发生。我注意到要让按钮工作,我必须从一开始就开始按下按钮,然后向下(按顺序)......完成后按钮开始工作.我的问题是:如何使每个按钮都可以直接触摸(即无需从上到下按按钮列表即可到达那里)

【问题讨论】:

  • 您在前一个按钮的监听器中设置每个监听器。将所有侦听器移至顶层。

标签: java android onclicklistener


【解决方案1】:

如果你有这样的算法:

      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() {

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

【讨论】:

    【解决方案2】:

    我的建议是让您的Activity 处理onClick 事件,并将所有侦听器添加到同一级别,而不是您现在正在执行的操作需要您按第一个 to 按钮到达为第二个按钮设置 OnClickListener 的代码行,依此类推。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-15
      • 2020-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多