错误:无法解析setOnClickListener

时间:2016-09-06 19:23:47

标签: java android android-studio

我遇到了一个问题,无法在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);
            }
        })

}

非常感谢。

4 个答案:

答案 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。