14

I'm trying to create a simple button that opens to a different activity:

package com.example.xxx.buttonexample;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.Button;
import android.view.View;
import android.view.View.OnClickListener;

public class MainActivity extends Activity {

Button button;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    btnClick();
}
public void btnClick() {
    button = (Button) findViewById(R.id.button1);
    button.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v)
        {
            Intent intent = new Intent(this,emergencyIntent.class);
            startActivity(intent);
        }
    });
}
}

Here is my emergencyIntent.class file:

package com.example.xxx.buttonexample;

import android.app.Activity;
import android.os.Bundle;

public class emergencyIntent extends Activity
{

@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    // The activity is being created.

}

}       

I received a error:

"Cannot resolve constructor 'intent(anonymous android.view.View.OnClickListener, java.lang.Class(com.example.xxx.buttonexample.emergencyIntent))'.

Blackbelt
  • 156,034
  • 29
  • 297
  • 305
User
  • 157
  • 1
  • 1
  • 5

3 Answers3

37

Just replace this in first parameter with MainActivity.this. like:

 Intent intent = new Intent(MainActivity.this,emergencyIntent.class);

The error is because you are writing it in public void onClick(View v), where 'this' will mean instance of anonymous class that implements View.OnClickListener. while first parameter in Intent constructor Intent(Context context, Class<?> cls) requires Activity context.

Krupal Shah
  • 8,949
  • 11
  • 57
  • 93
0
    package com.example.xxx.buttonexample;

    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.widget.Button;
    import android.view.View;
    import android.view.View.OnClickListener;

    public class MainActivity extends Activity {

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

        button = (Button) findViewById(R.id.button1);
        button.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v)
            {
                Intent intent = new  Intent(MainActivity.this,emergencyIntent.class);
startActivity(intent);
//Or Intent intent = new  Intent(getApplicationContext(),emergencyIntent.class);

            }
        });
    }
    }
Yogesh Borhade
  • 694
  • 1
  • 10
  • 24
0

package com.example.xxx.buttonexample;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.Button;
import android.view.View;
import android.view.View.OnClickListener;

public class MainActivity extends Activity {

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

    button = (Button) findViewById(R.id.button1);
    button.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v)
        {
            Intent intent = new  Intent(MainActivity.this,emergencyIntent.class);

startActivity(intent); //Or Intent intent = new Intent(getApplicationContext(),emergencyIntent.class);

        }

});## Heading ##