Java can';不要叫一个新的活动
我试图通过单击图像按钮从主活动启动新活动,但出现以下错误:Java can';不要叫一个新的活动,java,android,Java,Android,我试图通过单击图像按钮从主活动启动新活动,但出现以下错误: android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want? 这是我的代码: public void WordsButton() { words =
android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?
这是我的代码:
public void WordsButton() {
words = (ImageButton) findViewById(R.id.words);
words.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
Intent intent = new Intent(getApplicationContext(), WordsActivity.class);
getApplicationContext.startActivity(intent);
}
});
}
更改您的
getApplicationContext.startActivity(intent)
到开始活动(意图)
不要使用getApplicationContext()
只需使用标准的活动上下文getContext()
您应该使用:
words.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
Intent intent = new Intent(MainActivity.this, WordsActivity.class);
startActivity(intent);
}
});
尝试将onClick方法参数从arg0更改为v,使其与接口中的方法定义相同 这里有一个建议
words.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(getApplicationContext(), WordsActivity.class);
startActivity(intent);
}
});
使用以下命令:
public void WordsButton() {
words = (ImageButton) findViewById(R.id.words);
words.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
Intent intent = new Intent(getApplicationContext(), WordsActivity.class);
startActivity(intent);
}
});
}
将此标志添加到您的意图中
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
并使用标准的Context getContext()
可能的阅读:很好,检查是否有更多的理解
Intent intent = new Intent(getContext(), WordsActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getContext.startActivity(intent);