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);