以下是我的计划,我收到此错误:
Description Resource Path Location Type
The method setOnClickListener(View.OnClickListener) in the type View is not applicable for the arguments (welcome) welcome.java /testcalculator/src/com/testcalculator line 31 Java Problem
welcome.java
package com.testcalculator;
public class welcome extends Activity{
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.welcome1);
Button playBtn = (Button) findViewById(R.id.playBtn);
playBtn.setOnItemClickListener();
Button exitBtn = (Button) findViewById(R.id.exitBtn);
exitBtn.setOnClickListener(this);
}
public void onClick(View v) {
Intent i;
switch (v.getId()){
case R.id.playBtn :
i = new Intent(this, testcalculator.class);
startActivity(i);
break;
case R.id.exitBtn :
finish();
break;
}
}
}
问题是,我在我的问题中有所有必需的导入选项,但我仍然收到错误消息。
答案 0 :(得分:1)
您将Activity类作为OnClickListener传递到此行:
exitBtn.setOnClickListener(this);
但是,您的类需要明确声明它正在实现View.OnCLickListener
接口。将您的类声明行更改为:
public class welcome extends Activity implements OnClickListener
还有其他几点需要注意:
你写了playBtn.setOnItemClickListener()
。也许你的意思是playBtn.setOnClickListener(this)
?按钮没有OnItemClickListeners
您也可以通过声明匿名类来设置OnClickListener而不让activity类本身实现接口。像这样:
playBtn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// playBtn code
}
});
exitBtn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// exitBtn code
}
});
这种方式更常用,因为它更具可读性。通过隔离onClick代码上的按钮,您可以轻松地告诉哪个按钮做了什么,而不是将它全部放在一个方法中并让类本身实现OnClickListener。
答案 1 :(得分:0)
Button playBtn = (Button) findViewById(R.id.playBtn); playBtn.setOnItemClickListener();
应该是setOnClickListener(this),就像退出按钮一样。退出按钮是否有效?
答案 2 :(得分:0)
您正在为两个错误的OnClickListener类设置常见的onClick方法。尝试为按钮的OnClickListener类提供两种不同的onClick方法。
答案 3 :(得分:0)
如果您想将this
用作exitBtn.setOnClickListener(this);
,则必须声明您的Activity将实现接口OnClickListener
public class welcome extends Activity implements OnClickListener {
...
}
答案 4 :(得分:0)
请改为尝试:
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.welcome1);
//////// MENU //////////
Button playBtn = (Button) findViewById(R.id.playBtn);
playBtn.setOnItemClickListener(new View.OnClickListener() {
public void onClick(View v) {
i = new Intent(this, testcalculator.class);
startActivity(i);
}
});
Button exitBtn = (Button) findViewById(R.id.exitBtn);
exitBtn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
finish();
}
});
}
或者更改您的类以实现OnClickListener,如:public class welcome extends Activity implements OnClickListener
答案 5 :(得分:0)
导入以下内容:
import android.view.View.OnClickListener;
答案 6 :(得分:0)
您在主要活动之上编写此行并实现onClickListener,
public class welcome extends Activity implements OnClickListener
答案 7 :(得分:-1)
你需要写
playBtn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// code here
}
});
也是同一个按钮。我认为它会比你的版本更好。 :)