我试图运行这个简单的代码(我是一个初学者:)。
尝试运行此功能。 //文本通常是我用于按钮的内容。但是,我看到了我想尝试的这种切换技术,它似乎更有效率。但是,我得到与onClick相关的错误(关于()和'void是无效类型')。我不知道是什么原因引起的。只是想访问按钮。任何人都可以告诉我为什么?
谢谢!
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;
}
};
}
}
答案 0 :(得分:1)
这里实际上有两个问题: 首先,正如@Saiesh所说,如果要在类级别实现click侦听器,则需要将类声明更改为implment OnClickListener。所以你的声明看起来像
public class FewOptions extends Activity implements OnClickListener{
第二个问题(以及你得到关于void的错误类型的错误的原因)是你在onCreate方法的主体中声明了onClick方法。将onClick方法的声明移到onCreate方法的右大括号(}
)之外,该错误应该消失。
还有一点需要注意:在完成上述2个修复后,请不要忘记将您的类添加为按钮的单击侦听器:
sexy.setOnClickListener(this);
答案 1 :(得分:0)
您需要传递正确的上下文
Intent intent = new Intent(FewOptions.this,SexyPage.class);
FewOptions.this.startActivity(intent);
答案 2 :(得分:0)
解决方案是使用这个onClick()方法,您的类需要实现onClickListener接口。因此,你的班级标题应该是这样的
public class FewOptions extends Activity implements onClickListener
{
//Eclipse will automatically ask you to override the onClick() method
}
这就是解决方案:)