Android 为什么我的代码出错?

Android 为什么我的代码出错?,android,android-studio,onclicklistener,Android,Android Studio,Onclicklistener,当我为一个名为convert的特定按钮设置我的点击监听器时 代码在视图和v之间的空格处显示红色下划线 我是android studio的新手,尝试通过在谷歌上搜索来解决这个问题,但没有效果。我哪里错了,怎么错了 编辑1:我整理了错误,显然是在onCreate结束时放错了大括号,在实际代码执行之前,有效地终止了onCreate。然而,现在它执行良好,除了一个微小的缺陷,它显示没有输出。我该怎么办 代码: protected void onCreate(Bundle savedInstanceSta

当我为一个名为convert的特定按钮设置我的点击监听器时

代码在视图和v之间的空格处显示红色下划线

我是android studio的新手,尝试通过在谷歌上搜索来解决这个问题,但没有效果。我哪里错了,怎么错了

编辑1:我整理了错误,显然是在onCreate结束时放错了大括号,在实际代码执行之前,有效地终止了onCreate。然而,现在它执行良好,除了一个微小的缺陷,它显示没有输出。我该怎么办

代码:

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 
        }
    });