所以我想要启动一个Activity,它只会弹出一个对话框弹出框,告诉用户如何使用该应用程序。
我有代码:
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(this, About.class);
startActivity(i);
break;
}
}
}
但意图给了我错误:
构造函数Intent(new View.OnClickListener(){},Class)是 未定义
有关解决方法的任何想法吗?
感谢。
答案 0 :(得分:10)
更改,
Intent i = new Intent(this, About.class);
要,
Intent i = new Intent(TheCurrentClassName.this, About.class);
答案 1 :(得分:2)
问题是你在那里的另一个类中并且正在向Intent传递错误的上下文。你必须传递正确的背景。看一下下面的例子。
// 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;
}
}
}
答案 2 :(得分:1)
将意图行更改为:Intent intent = new Intent(ClassName.this,theNewClassName.class);
答案 3 :(得分:1)
意图需要一个上下文。但是,在onClick函数中使用此快捷方式未正确解析。在匿名内部类中提供当前上下文的不同方法是 - 使用Context.this代替此。 - 使用getApplicationContext()而不是这个。 - 明确使用类名MenuScreen.this。 调用在正确的上下文级别声明的函数。
答案 4 :(得分:1)
只需更改
Intent i = new Intent(this, About.class);
到
Intent i = new Intent(Classname.this, About.class);
希望它有效。