Can't use button in android

时间:2016-04-21 22:27:54

标签: android

Hi I have been trying to use a onclicklistener on a button but it give me an error. This is the code I am using:

public class login extends AppCompatActivity {

    private LoginButton loginButton;
    private CallbackManager callbackManager;
    private Button testbutton;




    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        testbutton = (Button) findViewById(R.id.login_activity_button);

        testbutton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

            }
        });

And this is the error I am getting:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.buddifyapp.buddify.buddify/com.buddifyapp.buddify.buddify.UI.login}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference

what am I doing wrong here ?

2 个答案:

答案 0 :(得分:1)

You have to call setContentView first, otherwise you can't find your views in the layout.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    /* ADD THIS BELOW */
    setContentView(R.layout.my_layout);
    testbutton = (Button) findViewById(R.id.login_activity_button);

    testbutton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

        }
    });

答案 1 :(得分:0)

Reference to your button is not found, because you haven't set activity's layout through setContentView(R.layout.your_layout) right after super.onCreate(savedInstanceState);