Button button = (Button)findViewById(R.id.button1);
button.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN ) {
//Insert desired code here
return true;
}
return false;
}
});
public void backtogreen(View view) {
Intent intent = new Intent(this, DisplayMessageActivity.class);
startActivity(intent);
}
如何修复此代码? 我有这样的错误:
- 无法解析符号' setOnTouchListener' - 对于setOnTouchListener
- 无效的方法声明;需要返回类型 - 对于onTouchListener
- 此处不允许使用注释 - 对于@override高于公共布尔值
- 无法解决符号'事件'对于bothe'事件'
- 无法从具有void结果类型的方法返回值,返回true并返回false
请帮忙!
答案 0 :(得分:4)
您不能在类主体中运行除原始赋值之外的代码。您的代码需要采用某种方法,例如onCreate
:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button) findViewById(R.id.button1);
button.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN ) {
//Insert desired code here
return true;
}
return false;
}
});
}
答案 1 :(得分:0)
您的方法签名不正确。试试这段代码:
button.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN ) {
//Insert desired code here
return true;
}
return false;
}
});
答案 2 :(得分:0)
使用以下方法
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button) findViewById(R.id.button1);
OnTouchListener m_onTouchListener = new OnTouchListener() {
@Override
public boolean onTouch(View p_v, MotionEvent p_event) {
if (event.getAction() == MotionEvent.ACTION_DOWN ) {
//Insert desired code here
return true;
}
return false;
}
};
button.setOnTouchListener(m_onTouchListener);
}