我正在开发一个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(){}
)
答案 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
如果没有删除第二个错误,请告知我们是否存在其他问题。