Android 为什么我的代码出错?
当我为一个名为convert的特定按钮设置我的点击监听器时 代码在视图和v之间的空格处显示红色下划线 我是android studio的新手,尝试通过在谷歌上搜索来解决这个问题,但没有效果。我哪里错了,怎么错了 编辑1:我整理了错误,显然是在onCreate结束时放错了大括号,在实际代码执行之前,有效地终止了onCreate。然而,现在它执行良好,除了一个微小的缺陷,它显示没有输出。我该怎么办 代码:Android 为什么我的代码出错?,android,android-studio,onclicklistener,Android,Android Studio,Onclicklistener,当我为一个名为convert的特定按钮设置我的点击监听器时 代码在视图和v之间的空格处显示红色下划线 我是android studio的新手,尝试通过在谷歌上搜索来解决这个问题,但没有效果。我哪里错了,怎么错了 编辑1:我整理了错误,显然是在onCreate结束时放错了大括号,在实际代码执行之前,有效地终止了onCreate。然而,现在它执行良好,除了一个微小的缺陷,它显示没有输出。我该怎么办 代码: protected void onCreate(Bundle savedInstanceSta
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final EditText inputNum = (EditText) findViewById(R.id.inputNum);
final TextView octNum = (TextView) findViewById(R.id.octNum);
final TextView binNum = (TextView) findViewById(R.id.octNum);
final TextView hexNum = (TextView) findViewById(R.id.octNum);
final Button convert = (Button) findViewById(R.id.convert);
View.OnClickListener listener = new OnClickListener() {
@Override
public void onClick(final View v) {
convert.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
int a = Integer.parseInt(inputNum.getText().toString());
String bin = Integer.toBinaryString(a);
String oct = Integer.toOctalString(a);
String hex = Integer.toHexString(a);
octNum.setText(oct);
binNum.setText(bin);
hexNum.setText(hex);
}
});
}
};
}
@Override
public void onClick(View v) {
}
编辑
用户可以按下或单击按钮来执行操作
活动中按钮的典型用法如下:
但是,可以使用android:onClick
为XML布局中的按钮指定方法,而不是将OnClickListener
应用于活动中的按钮你正试图完成一件事,却被setOnClickListener搞得一团糟。是吗?
现在,当用户单击按钮时,Android系统调用活动的myClickMethod(View)
(我创建的)方法。为了使其工作,该方法必须是公共的,并接受视图作为其唯一参数。例如:
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="myClickMethod"
android:text="button" />
调用方法时不应指定参数类型。编译器要么自己解决问题,要么输出错误。目前,AndroidStudio认为您正在尝试将两个参数“View”和“v”传递给该方法,但忘记了它们之间的逗号
将调用替换为convert.setOnClickListener(v),错误消息将变得更清楚,即setOnClickListener没有使用View类型的参数定义。U应提供类似于此的onClickListener的新实例
convert.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//Code here
}
});
你想要实现什么?向该转换添加侦听器?您的
convert
convert.setOnClickListener(newview.OnClickListener(){@Override public void onClick(View v){}})是什么代码>转换是按钮的名称(ID)。我应该上传更多的代码吗?检查我的答案是否就是你要找的?我已经编辑了这个问题,显然错误是由于onCreate末尾的大括号放错了位置造成的。但代码现在执行,但不起作用。我不明白为什么被执行但不工作意味着什么?你期待什么?你会得到什么?点击错误已经消失,但应用程序在android VM上启动时仍然崩溃。我正在手机上测试这个应用程序,看看AVD是否有故障。将在测试完成后相应地更新问题
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="myClickMethod"
android:text="button" />
public void myClickMethod(View view) {
// Perform action
}
convert.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//Code here
}
});