我遇到了一个问题,无法在Android Studio
中解决。 setOnClickListener 保持红色并且不起作用,除非我摆脱了我的" loseStarter1"按钮名称。
注意: Starter1是一个按钮,我试图让它在用户点击时消失。当我介绍loseStarter1按钮时,我的真实代码就开始了。
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class game1 extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_game1);
}
Button loseStarter1;
loseStarter1 = (Button) findViewById(R.id.Starter1);
loseStarter1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
loseStarter1.setVisibility(View.GONE);
}
})
}
非常感谢。
答案 0 :(得分:1)
您缺少分号以结束新的View.OnClickListener(){...语句以及该块不在方法内部。
不仅要将此代码移到onCreate方法中,请确保以分号结束。
loseStarter1 = (Button) findViewById(R.id.Starter1);
loseStarter1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
loseStarter1.setVisibility(View.GONE);
}
}); // Add the semicolon here
它应该是这样的:
public class game1 extends AppCompatActivity {
Button loseStarter1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_game1);
loseStarter1 = (Button) findViewById(R.id.Starter1);
loseStarter1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
loseStarter1.setVisibility(View.GONE);
}
}); //added semicolon
} // ends onCreate method
} // ends class
答案 1 :(得分:0)
移到onCreate()
loseStarter1 = (Button) findViewById(R.id.Starter1);
loseStarter1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
loseStarter1.setVisibility(View.GONE);
}
});
答案 2 :(得分:0)
您的Button变量声明和OnClickListener初始化在onCreate()方法之外。使用以下代码:
.mongorc.js
答案 3 :(得分:0)
我就是这样做的。
1)首先让类实现接口View.OnClickListener,这样可以处理按钮clic事件:
public class game1 extends AppCompatActivity implements View.OnClickListener;
2)第二次创建处理事件的接口方法。
@Override
public void onClick(View view)
{
if(view.getId()==R.id.Starter1)
{
view.setVisibility(View.GONE);
}
}
3)OnCreate方法是查找对象和设置属性的最佳方法。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_game1);
loseStarter1= (Button) findViewById(R.id.Starter1);
if(loseStarter1!=null){
loseStarter1.setOnClickListener(this);
}
}
所有代码:
package com.cutting_edge_tech.mentalenhancementapp;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class game1 extends AppCompatActivity implements View.OnClickListener {
private Button loseStarter1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_game1);
loseStarter1 = (Button) findViewById(R.id.Starter1);
if(loseStarter1!=null){
loseStarter1.setOnClickListener(this);
}
}
@Override
public void onClick(View view)
{
if(view.getId()==R.id.Starter1)
{
view.setVisibility(View.GONE);
}
}
}
建议: 将类重命名为Game1。