需要帮助完成这两项活动的代码?

时间:2012-09-04 15:41:42

标签: java android android-intent

我正在开发一个Android应用程序,使用on click侦听器启动两个活动我的代码中的所有内容都检查正常,除了public void onClick(View v)开始我在该行开始时有多个错误而且我无法运行码?我很感激任何帮助,因为我对此很新。我的代码如下

public class Safaricom extends Activity {

      @Override
      public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.safaricom);

          Button button1 = (Button)findViewById(R.id.button1);
          Button button2 = (Button)findViewById(R.id.button2);

          button1.setOnClickListener(buttonClickListener);
          button2.setOnClickListener(buttonClickListener);
      }

      private OnClickListener buttonClickListener = new View.OnClickListener() {

           @Override
             public void onClick(View v) {
                  Intent intent = null;
                  switch(v.getId()){
                  case R.id.button1: 
                       intent = new Intent(this, Second.class);
                       break;
                  case R.id.button2:
                       intent = new Intent(this, SignUp.class);
                       break;
                  }
                  if (intent != null)
                      this.startActivity(intent);
             }     
      }; 
}

错误在两点。 首先是public void on click view(错误是 - Multiple Markers at this line - implements android.view.View.OnClickListener.onClick- The method onClick(View) of type new View.OnClickListener(){} must override a superclass

第二个显示this.startActivity(intent);(错误是-T he method startActivity(Intent) is undefined for the type new View.OnClickListener(){}

3 个答案:

答案 0 :(得分:1)

而不是this使用v.getContext()YOUR_ACTIVITY.this

实际上如果您仔细阅读文档,则会知道Intent参数包含Activity,因此当您使用this时,这意味着您要提供{{1}类型的参数}}

答案 1 :(得分:0)

好吧,我可以看到几个错误。为了更清楚,因为通过简单地查看代码和学习显然不清楚。我在每个新的Intent语句中添加了Safaricom.this。这是因为Intent构造函数需要Context作为第一个参数而OnClickListener不是Context,您需要创建一个封闭的Activity作为上下文。另一个编辑,我错过了,startActivity还需要预先安装Safaricom。

public class Safaricom extends Activity {

  @Override
  public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.safaricom);

      Button button1 = (Button)findViewById(R.id.button1);
      Button button2 = (Button)findViewById(R.id.button2);

      button1.setOnClickListener(buttonClickListener);
      button2.setOnClickListener(buttonClickListener);
  }

  private OnClickListener buttonClickListener = new View.OnClickListener() {

       @Override
         public void onClick(View v) {
              Intent intent = null;
              switch(v.getId()){
              case R.id.button1: 
                   intent = new Intent(Safaricom.this, Second.class);
                   break;
              case R.id.button2:
                   intent = new Intent(Safaricom.this, SignUp.class);
                   break;
              }
              if (intent != null)
                  Safaricom.this.startActivity(intent);
         }     
     };
 }

答案 2 :(得分:0)

第一个错误

The Error is - Multiple Markers at this line - implements android.view.View.OnClickListener.onClick- The method onClick(View) of type new View.OnClickListener(){} must override a superclass )

尝试删除@override

如果没有删除第二个错误,请告知我们是否存在其他问题。