2 qq 34673620 qq_34673620 于 2016.04.15 17:37 提问

在安卓学习中遇到的问题:setOnClickListener()方法的问题

package com.example.phonecaller;

import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends ActionBarActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}

EditText et_number=(EditText)findViewById(R.id.editText1);
Button btn_call=(Button)findViewById(R.id.button1);
btn_call.setOnClickListener(1);//这里报的错是Syntax error on token(s), misplaced construct(s)

}

而且我打开这个Button类的原文件只找到了三个方法,并没有setOnClickListener()

新人刚刚入门的安卓开发还望各位大神指点指点

7个回答

CSDNXIAON
CSDNXIAON   2016.04.15 17:42

安卓学习遇到的问题
安卓编译环境遇到的问题
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

qq_15002323
qq_15002323   2016.04.15 17:55

我去,往上面找啊,button是继承view的,你应该找view的源码

qq_34673620
qq_34673620 嗯嗯看到了,谢谢师兄
一年多之前 回复
qiaoweiya
qiaoweiya   2016.04.15 17:59

button继承view,view里面有setonclicklistener

qq_34673620
qq_34673620 好的,谢谢师兄
一年多之前 回复
maowei117
maowei117   2016.04.15 18:02

Button是TextView的子类,TextView是View的子类,setOnClickListener是View中的方法。
你的方法的调用不能写在onCreate的外面,这样执行的时候是没办法执行到这一步的。

 EditText et_number=(EditText)findViewById(R.id.editText1);
Button btn_call=(Button)findViewById(R.id.button1);
btn_call.setOnClickListener(1);//这里报的错是Syntax error on token(s), misplaced construct(s)

把这几句写到onCreate里面去

然后你的setOnClickListener还需要传入一个OnClickListener的实现作为参数。

qq_34673620
qq_34673620 谢谢师兄~
一年多之前 回复
qq_34673620
qq_34673620 所以说View是总的父类?然后他们之间的类不同仅仅是继承了不同的借口?
一年多之前 回复
eyishion
eyishion   2016.04.15 18:50

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
EditText et_number=(EditText)findViewById(R.id.editText1);
Button btn_call=(Button)findViewById(R.id.button1);
btn_call.setOnClickListener(1);
}
应该是上面那样l来写,要写到方法里面去,你写到方法外面去了,所以会包语法错误;

这里报的错是Syntax error on token(s), misplaced construct(s) 意思就是语法错误;

qq_34673620
qq_34673620 谢谢师兄,我自己仔细看了看还真是,不好意思了犯这种低级错误
一年多之前 回复
Yee_XU
Yee_XU   2016.04.16 13:53

setOnClickListener这句代码要写到方法里面啊,写到外面是成员方法和变量

crazy1235
crazy1235   Ds   Rxr 2016.04.16 18:24

代码要写到onCreate()里面去。。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!