setOnClickListener在ActivityMain.java中不起作用

时间:2018-10-03 12:06:53

标签: android

setOnClickListener抛出一个错误,作为必需的标识符,我应该导入任何特定的软件包吗?

package com.example.work.test;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Button;
import android.view.*;



public class MainActivity extends AppCompatActivity{

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

//initialize the button
Button btn = (Button) findViewById(R.id.button);
// set the button action
btn.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        goToSecondPage();
    }
});
}

帮我解决这个问题! 谢谢。

4 个答案:

答案 0 :(得分:2)

onCreate或其他函数中编写您的侦听器代码,并从onCreate进行调用。 像这样:

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

   //initialize the button
   Button btn = (Button) findViewById(R.id.button);
   // set the button action
   btn.setOnClickListener(new View.OnClickListener() {
      public void onClick(View v) {
        goToSecondPage();
      }
   });
}

答案 1 :(得分:1)

Button初始化和设置OnClickListener应该使用onCreate方法。 像这样:

public class MainActivity extends AppCompatActivity{

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

       //initialize the button
       Button btn = (Button) findViewById(R.id.button);
       // set the button action
       btn.setOnClickListener(new View.OnClickListener() {
           @Override
           public void onClick(View v) {
               goToSecondPage();
           }
       });
    }
}

答案 2 :(得分:0)

在Java中尝试此代码。

public class MainActivity2 extends AppCompatActivity implements View.OnClickListener {
private Button btn;

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

}

/**
 * this method initialized all view controls.
 */
private void init() {

    btn = findViewById(R.id.button);
}

/**
 * this method define all view controls listener.
 */
private void setListener() {
    btn.setOnClickListener(this);

}

@Override
public void onClick(View view) {
    switch (view.getId()) {
        case R.id.button:
            goToSecondPage();
            break;
    }
}

}

答案 3 :(得分:-1)

尝试使用此onCreate方法:

//initialize the button
Button btn = (Button) findViewById(R.id.button);

// set the button action
btn.setOnClickListener(new View.OnClickListener() {

public void onClick(View v) {
    goToSecondPage();
  }
})