2011-10-31 36 views
0

即时通讯尝试运行这个简单的代码(即时通讯初学者:)。试图调用一个活动,但与onClick

试图运行这个。 //文本通常用于按钮。然而,我看到了我想尝试的这种开关技术,它看起来更有效率。然而,我得到的onClick相关的错误(关于()和'无效是一种无效的类型')。我不知道什么会导致这种情况。只想访问按钮。谁能告诉我为什么?

谢谢!

package com.experiment.fewops; 

    import android.app.Activity; 
    import android.content.Intent; 
    import android.os.Bundle; 
    import android.view.View; 
    import android.widget.Button; 

    public class FewOptions extends Activity { 
     /** Called when the activity is first created. */ 

     final Button sexy = (Button) findViewById(R.id.buttonSexy); 
     final Button text = (Button) findViewById(R.id.buttonText); 

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

    //  sexy.setOnClickListener(new View.OnClickListener() { 
    //   
    //   @Override 
    //   public void onClick(View v) { 
    //    Intent intent = new Intent(this, SexyPage.class); 
    //    startActivity(intent); 
    //   } 
    //  }); 

    @Override 
    public void onClick(View v) { 


     switch(v.getId()){ 
     case R.id.buttonSexy: 
      Intent intent = new Intent(this,SexyPage.class); 
      startActivity(intent); 
      break; 
     } 

    }; 


} 

}

回答

1

这里其实有两个问题: 首先,@Saiesh说,如果你想实现点击聆听者在类级别中,您需要将您的类声明更改为实现OnClickListener。因此,您的声明看起来像

public class FewOptions extends Activity implements OnClickListener{ 

第二个问题(和你得到关于无效是一个坏的类型错误的原因),就是,你在声明的onCreate方法的身体的onClick方法。将onClick方法的声明移到onCreate方法的大括号(})之外,并且该错误应该消失。

还要说明一点:你以后再进行2个修复上面,不要忘记添加类作为点击监听按钮:

sexy.setOnClickListener(this); 
0

您需要通过正确的上下文

Intent intent = new Intent(FewOptions.this,SexyPage.class); 
FewOptions.this.startActivity(intent); 
0

那么解决的办法是,要使用你的类需要实现onClickListener接口此的onClick()方法。因此,您的类标题应该是这样的

public class FewOptions extends Activity implements onClickListener 
{ 
     //Eclipse will automatically ask you to override the onClick() method 
} 

因此多数民众赞成的解决方案:)

相关问题