Android:使用switch case点击按钮传递值

时间:2011-06-22 06:00:25

标签: android variable-assignment switch-statement

当我们点击第一个按钮时,我有两个按钮,我们应该将M值分配给一个字符串;对于第二个按钮,我想将F值分配给相同的字符串变量

在下面给出的代码中,gender是字符串变量null,当我们点击regmalebtn时,我们应该将值M传递给字符串gender,将F传递给第二个按钮

在XML中,我没有为这两个按钮添加设置文本。当我这样做时,null值正在传递,我得到空指针异常。

如何解决这个问题?任何帮助将不胜感激

提前致谢...!

    String gender = null; 
Button regmalebtn = (Button) findViewById(R.id.regmalebtn);
  Button regfemalebtn = (Button) findViewById(R.id.regfemalebtn);
     // Here in the above line I m getting the error//
  public void onClick(View v) {

      switch(v.getId()){

      case R.id.regmalebtn:

    //  gender = regmalebtn.getText().toString();
        gender.equals("M");
    //  request.addProperty("gender",gender );

           break;

      case R.id.regfemalebtn: 

       //  gender = regfemalebtn.getText().toString();
            gender.equals("F");
        //  request.addProperty("gender", gender);
           break;
      default:
          break;

      }
      } 

4 个答案:

答案 0 :(得分:1)

你必须这样做。

  Button regmalebtn = (Button) findViewById(R.id.regmalebtn);
  regmalebtn.setOnClickListener(this);

  Button regfemalebtn = (Button) findViewById(R.id.regfemalebtn);
  regfemalebtn .setOnClickListener(this);

   public void onClick(View v) 
   {
      switch(v.getId())
      {
          case R.id.regmalebtn:
                               gender = "M";
                               break;

         case R.id.regfemalebtn: 
                              gender = "F";
                              break;

         default:
                              break;
     }
   }

答案 1 :(得分:1)

当您尝试使用以下任何一种陈述时:

//  gender = regmalebtn.getText().toString();

        gender.equals("F");

它们都是空的。

为变量赋值的正确方法是:

variable = value;

在您的情况下,而不是:

gender.equals("F")

你使用:

gender = "F"; // or gender = new String("F"); 

答案 2 :(得分:0)

 **String gender = "";**  

 Button regmalebtn = (Button) findViewById(R.id.regmalebtn);
  regmalebtn.setOnClickListener(this);

  Button regfemalebtn = (Button) findViewById(R.id.regfemalebtn);
  regfemalebtn .setOnClickListener(this);

   public void onClick(View v) 
   {
      switch(v.getId())
      {
          case R.id.regmalebtn:
                               gender = "M";
                               break;

         case R.id.regfemalebtn: 
                              gender = "F";
                              break;

         default:
                              break;
     }
   }

答案 3 :(得分:0)

pipenv uninstall beautifulsoup