Android:按钮OnClickListener不起作用

Hyd*_*oze 8 android case onclick listener switch-statement

我创建了这个活动,应该允许我在按下按钮后打开一个新活动.

但是OnClickListener似乎不起作用.

我宣布按钮错了吗?

有人可以出去吗?

public class Menu extends Activity {


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

    View loginbutton = findViewById(R.id.butlogin);
    loginbutton.setOnClickListener(this);

    View recordbutton = findViewById(R.id.butrecordts);
    recordbutton.setOnClickListener(this);

    View viewbutton = findViewById(R.id.butviewts);
    viewbutton.setOnClickListener(this);

    View projectsbutton = findViewById(R.id.butprojects);
    projectsbutton.setOnClickListener(this);

}

public void onClick(View v){

    switch(v.getId())
    {
    case R.id.butlogin:
    {
        //open login screen
        Intent i = new Intent(this, login.class);
        startActivity(i);
        break;
    }
    case R.id.butrecordts:
    {
        break;
    }
    case R.id.butviewts:
    {
        break;
    }
    case R.id.butprojects:
    {
        break;
    }

    }
}
Run Code Online (Sandbox Code Playgroud)

Dip*_*iya 12

是的,问题出在按钮声明中,写下代码而不是代码,它将解决您的问题.

public class Menu extends Activity implements OnClickListener{

    Button loginbutton, recordbutton, viewbutton, projectsbutton;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.menu);

        loginbutton = (Button) findViewById(R.id.butlogin);
        loginbutton.setOnClickListener(this);

        recordbutton = (Button) findViewById(R.id.butrecordts);
        recordbutton.setOnClickListener(this);

        viewbutton = (Button) findViewById(R.id.butviewts);
        viewbutton.setOnClickListener(this);

        projectsbutton = (Button) findViewById(R.id.butprojects);
        projectsbutton.setOnClickListener(this);

    }

    public void onClick(View v){

        switch(v.getId())
        {
            case R.id.butlogin:
            {
                //open login screen
                Intent i = new Intent(this, login.class);
                startActivity(i);
                break;
            }
            case R.id.butrecordts:
            {
                break;
            }
            case R.id.butviewts:
            {
                break;
            }
            case R.id.butprojects:
            {
                break;
            }

        }
    }
}
Run Code Online (Sandbox Code Playgroud)