Unable to allow constructor (Android Intent)

I am trying to create a simple button that opens for another action:

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 got an error message:

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

+6
source share
4 answers

Just replace this in the first parameter with MainActivity.this . as:

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

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

+18
source

Replace your intention with the following:

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

0
source
  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); } }); } } 
0
source

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 intention of intention = new intention (getApplicationContext (), emergencyIntent.class);

  } 

}); ## Title ##

0
source

Source: https://habr.com/ru/post/989476/


All Articles