gpt4 book ai didi

java - 错误 :/home/retok/proj/src/com/hellow/app/HelloActivity. java:34: 预期为 ';'

转载 作者:太空宇宙 更新时间:2023-11-04 13:54:07 25 4
gpt4 key购买 nike

我试图让 Android onClick() 方法更易于阅读,所以我像这样包装它

public void click(Button bt) {
bt.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {}
});
}

当我尝试像这样运行它时

button = (Button) findViewById(R.id.btn1);

click(button) {
@Override
public void onClick(View v) {
Log.v("hi", "test");

}
}

button = (Button) findViewById(R.id.btn1);

click(button) {
@Override
public void onClick(View v) {
Log.v("hi", "test");

}
};

button = (Button) findViewById(R.id.btn1);

click(button) {
@Override
public void onClick(View v) {
Log.v("hi", "test");

};
};

它给出了以下错误:

[error] /home/retok/proj/src/com/hellow/app/HelloActivity.java:32: ';' expected
[error] /home/retok/proj/src/com/hellow/app/HelloActivity.java:34: ';' expected
[error] /home/retok/proj/src/com/hellow/app/HelloActivity.java:34: ';' expected
[error] (compile:compileIncremental) javac returned nonzero exit code

这是为什么呢?正如你所看到的,我将 ; 放在需要的地方。而且我不能将 ; 放在 public void onClick(View v) {click(button) { 之后,因为这会关闭该方法并给出错误。

最佳答案

这里有一个错误:

click(button) {
@Override

click(button)被视为一个方法调用,该行的其余部分当时被忽略,但该调用缺少一个;

您似乎正在尝试重写由 new View.OnClickListener() 创建的匿名类的方法部分,但这是不可能/不允许的。

我的理解是,您希望为多个按钮使用一个按钮处理程序。这确实是可以的,但是你没有正确的做法。

来自this question ,此非选中answer展示如何在一个位置处理多个按钮:

@Override
public void onCreate(Bundle savedInstanceState) {
button1.setOnClickListener(onClickListener);
button2.setOnClickListener(onClickListener);
button3.setOnClickListener(onClickListener);
}

private OnClickListener onClickListener = new OnClickListener() {
@Override
public void onClick(final View v) {
switch(v.getId()){
case R.id.button1:
//DO something
break;
case R.id.button2:
//DO something
break;
case R.id.button3:
//DO something
break;
}

}
};

(如果您确实想以相同的方式处理任何按钮,则不需要开关,这似乎不太可能)。

关于java - 错误 :/home/retok/proj/src/com/hellow/app/HelloActivity. java:34: 预期为 ';',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30013882/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com