Android 如何使开关和机箱工作?

Android 如何使开关和机箱工作?,android,switch-statement,case,Android,Switch Statement,Case,我有一个Android游戏项目,其源代码如下: package com.example.fun; import android.media.MediaPlayer; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.view.Menu; import android.view.View; import android.widget.TextVi

我有一个Android游戏项目,其源代码如下:

package com.example.fun;

import android.media.MediaPlayer;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.widget.TextView;
import android.widget.Button;



public class DogActivity extends Activity {
      Button buttonA;
      Button buttonB;
      Button buttonC;
      Button buttonD;
      Button buttonE;
      Button buttonF;
      Button buttonG;
      Button buttonH;
      Button buttonI;
      Button buttonJ;
      Button buttonK;
      Button buttonL;
      Button buttonM;
      Button buttonN;
      Button buttonO;
      Button buttonP;
      Button buttonQ;
      Button buttonR;
      Button buttonS;
      Button buttonT;
      Button buttonU;
      Button buttonV;
      Button buttonX;
      Button buttonW;
      Button buttonY;
      Button buttonZ;
      Button next;
      Intent i;
      TextView txtD;
      TextView txtO;
      TextView txtG;
      int life=3;
      TextView nyaw;
      TextView nyaw2;
      TextView nyaw3;
      TextView kesempatan;
      boolean l1,l2,l3;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_dog);
        buttonA = (Button)findViewById(R.id.buttonAbout);
        buttonB = (Button)findViewById(R.id.buttonhelp);
        buttonC = (Button)findViewById(R.id.buttonc);
        buttonD = (Button)findViewById(R.id.buttond);
        buttonE = (Button)findViewById(R.id.buttonE);
        buttonF = (Button)findViewById(R.id.buttonf);
        buttonG = (Button)findViewById(R.id.buttong);
        buttonH = (Button)findViewById(R.id.buttonh);
        buttonI = (Button)findViewById(R.id.buttoni);
        buttonJ = (Button)findViewById(R.id.buttonj);
        buttonK = (Button)findViewById(R.id.buttonk);
        buttonL = (Button)findViewById(R.id.buttonl);
        buttonM = (Button)findViewById(R.id.buttonm);
        buttonN = (Button)findViewById(R.id.buttonn);
        buttonO = (Button)findViewById(R.id.buttono);
        buttonP = (Button)findViewById(R.id.buttonp);
        buttonQ = (Button)findViewById(R.id.buttonq);
        buttonR = (Button)findViewById(R.id.buttonr);
        buttonS = (Button)findViewById(R.id.buttons);
        buttonT = (Button)findViewById(R.id.buttont);
        buttonU = (Button)findViewById(R.id.buttonu);
        buttonV = (Button)findViewById(R.id.buttonv);
        buttonW = (Button)findViewById(R.id.buttonw);
        buttonX = (Button)findViewById(R.id.buttonx);
        buttonY = (Button)findViewById(R.id.buttony);
        buttonZ = (Button)findViewById(R.id.buttonz);
        next = (Button)findViewById(R.id.buttonnext);
        txtD = (TextView)findViewById(R.id.textViewD);
        txtO = (TextView)findViewById(R.id.textViewO);
        txtG = (TextView)findViewById(R.id.textViewG);
        nyaw = (TextView)findViewById(R.id.nyawa);
        nyaw2 = (TextView)findViewById(R.id.nyawa2);
        nyaw3 = (TextView)findViewById(R.id.nyawa3);
        buttonA.setOnClickListener(myOnlyhandler);
        buttonB.setOnClickListener(myOnlyhandler);
        buttonC.setOnClickListener(myOnlyhandler);
        buttonD.setOnClickListener(myOnlyhandler);
        buttonE.setOnClickListener(myOnlyhandler);
        buttonF.setOnClickListener(myOnlyhandler);
        buttonG.setOnClickListener(myOnlyhandler);
        buttonH.setOnClickListener(myOnlyhandler);
        buttonI.setOnClickListener(myOnlyhandler);
        buttonJ.setOnClickListener(myOnlyhandler);
        buttonK.setOnClickListener(myOnlyhandler);
        buttonL.setOnClickListener(myOnlyhandler);
        buttonM.setOnClickListener(myOnlyhandler);
        buttonN.setOnClickListener(myOnlyhandler);
        buttonO.setOnClickListener(myOnlyhandler);
        buttonP.setOnClickListener(myOnlyhandler);
        buttonQ.setOnClickListener(myOnlyhandler);
        buttonR.setOnClickListener(myOnlyhandler);
        buttonS.setOnClickListener(myOnlyhandler);
        buttonT.setOnClickListener(myOnlyhandler);
        buttonU.setOnClickListener(myOnlyhandler);
        buttonV.setOnClickListener(myOnlyhandler);
        buttonW.setOnClickListener(myOnlyhandler);
        buttonX.setOnClickListener(myOnlyhandler);
        buttonY.setOnClickListener(myOnlyhandler);
        buttonZ.setOnClickListener(myOnlyhandler);
        next.setOnClickListener(myOnlyhandler);
    }
    View.OnClickListener myOnlyhandler = new View.OnClickListener() {

          public void onClick(View v) {
              if( buttonD.getId() == ((Button)v).getId() ){
                  txtD.setVisibility(View.VISIBLE);
              }
              else if( buttonO.getId() == ((Button)v).getId() ){
                  txtO.setVisibility(View.VISIBLE);
              }
              else if( buttonG.getId() == ((Button)v).getId() ){
                  txtG.setVisibility(View.VISIBLE);
                  i = new Intent(DogActivity.this, HouseActivity.class);
                    startActivity(i);   
              }
              else if( next.getId() == ((Button)v).getId() ){
                  i = new Intent(DogActivity.this, HouseActivity.class);
                    startActivity(i);   
              }
              else{
                  MediaPlayer mp = MediaPlayer.create(getApplicationContext(), R.raw.no);
                    mp.start();
                  life--;   
                    **switch (life) {
                    case 2:
                        nyaw.setVisibility(View.INVISIBLE);
                    break;
                    case 1:
                        nyaw2.setVisibility(View.INVISIBLE);
                    break;
                    case 0:
                        nyaw3.setVisibility(View.INVISIBLE);
                        i = new Intent(DogActivity.this, TamatActivity.class);
                        startActivity(i);
                    break;
                }**
              }

          }

};

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

}

但当我运行它时,开关和案例代码不起作用。是我放错地方了还是代码错了?谢谢你的回答

您可以根据自己的要求检查以下答案

这将正常工作,我只是改变了一些 没有别的了

见下文

View.OnClickListener myOnlyhandler = new View.OnClickListener() {

      public void onClick(View v) {
          if( R.id.buttond == ((Button)v).getId() ){
              txtD.setVisibility(View.VISIBLE);
          }
          else if( buttonO.getId() == ((Button)v).getId() ){
              txtO.setVisibility(View.VISIBLE);
          }
          else if( R.id.buttono == ((Button)v).getId() ){
              txtG.setVisibility(View.VISIBLE);
              i = new Intent(DogActivity.this, HouseActivity.class);
                startActivity(i);   
          }
          else if( R.id.buttonnext == ((Button)v).getId() ){
              i = new Intent(DogActivity.this, HouseActivity.class);
                startActivity(i);   
          }
          else{
              MediaPlayer mp = MediaPlayer.create(getApplicationContext(), R.raw.no);
                mp.start();
              life--;   
                **switch (life) {
                case 2:
                    nyaw.setVisibility(View.INVISIBLE);
                break;
                case 1:
                    nyaw2.setVisibility(View.INVISIBLE);
                break;
                case 0:
                    nyaw3.setVisibility(View.INVISIBLE);
                    i = new Intent(DogActivity.this, TamatActivity.class);
                    startActivity(i);
                break;
            }**
          }

      }
  //You can also use switch case for this.
};

life之后--
记录life的值并检查它是否与任何case匹配尝试向每个if/else子句和switch case添加调试语句,以查看代码是否得到执行。您可以使用Log.d(“标记”、“消息”)进行调试;试着在信息部分打印一些有用的东西,例如按钮的名称或箱子的编号。这将显示在您的LogCat控制台中。@Daniel。Logcat不用于调试(一般情况下)。顾名思义,它是用来记录日志的。请不要在Android社区继续这种疾病,那里的人们没有学会使用
调试器
,这是发现类似问题的正确方法。如果每个人都使用调试器,那么StackOverflow上90%的问题都是不必要的。“不工作”是什么意思?它什么也没告诉我们。@Raghunandan它是有效的。谢谢。。