So I want an intent to start an Activity that simply brings up a dialog popup box telling the user how to use the app.
I have the code:
private final
Change,
Intent i = new Intent(this, About.class);
to,
Intent i = new Intent(TheCurrentClassName.this, About.class);
Just change
Intent i = new Intent(this, About.class);
to
Intent i = new Intent(Classname.this, About.class);
Hope it works.
The intent needs a context. However, using the this shortcut in the onClick function is not properly resolved. Different ways to provide current context in an anonymous inner class are - Use Context.this instead of this. - Use getApplicationContext() instead of this. - Explicitly use the class name MenuScreen.this. Call a function that is declared at the right context level.
The problem is that you are inside another class there and are passing the Intent a wrong context. You have to pass it the right context. Take a look at the example below.
// your Activity
public class MyActivity extends Activity {
Context ctx = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ctx = getApplication();
}
private final View.OnClickListener btnClick = new View.OnClickListener() {
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.about_box:
Intent i = new Intent(ctx, About.class);
startActivity(i);
break;
}
}
}
Change the intent line to: Intent intent = new Intent(ClassName.this, theNewClassName.class);