找不到符号类 Intent

新手上路,请多包涵

我是 android 开发和编码 java 和 xml 的新手。

但我正在关注本教程:

http://www.steventrigg.com/activities-and-the-action-bar-create-an-alarm-clock-in-android-tutorial-part-1/#comment-296

然后我在使用 Intent 时遇到了这个错误。 switch下的“Intent”字样变红,出现“找不到符号类Intent”的错误

有人可以向我解释发生了什么以及如何解决这个问题吗?

这是我在 AlarmListActivity.java 下的代码的最后一部分

@Override

public boolean onOptionsItemSelected(MenuItem item) {

   int id = item.getItemId();
   if (id == R.id.action_settings) {
       return true;
   }

   switch (item.getItemId()) {
       case R.id.action_add_new_alarm: {
           Intent intent = new Intent(this,
                   AlarmDetailsActivity.class);

            startActivity(intent);
            break;
        }
    }
    return super.onOptionsItemSelected(item);
}

原文由 stanley santoso 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.2k
2 个回答

再次查看您的 AlarmListActivity 并检查顶部的导入语句并确保它包含以下行:

 import android.content.Intent;

如果您打算使用不属于 java.lang 包的任何预先存在的类,您通常必须导入这些类。例如,Android Intent 是由 Android 开发团队编写的预构建类,允许通知其他应用程序/活动。如果您想使用 Intent ,则必须导入包含 Intent 的包。

当您编写 new Intent() 时,编译器会发现您正在请求构建一个新对象,但是因为在 java.lang 包中找不到该对象,它需要知道在哪里寻找构建该对象的蓝图。导入语句是该蓝图的位置。

我看了一下教程,以有经验的程序员的方式,作者似乎忽略了一些基本但重要的事情,例如使他的示例代码工作的导入语句。

原文由 MarsAtomic 发布,翻译遵循 CC BY-SA 4.0 许可协议

我有一个同样的问题,我刚刚解决了,通过了解 Android Studio 如何索引文件,正如你所知,构建 Android 应用程序是一个非常复杂的过程。所以 Android Studio 有一些内部参考,它会根据您创建的每个文件的变化不断更新。

我在寻找解决方案时到达了这篇文章,

这就是我遇到这个问题的方式

我通常不会在主项目包下创建一个活动,我创建子包来根据我使用的设计模式组织文件,例如如果我的 APP 名称是 com.example.testingaravind 那么我通常在其中创建包,例如活动,服务,模型,经理等……所以今天我首先创建了一个活动,然后通过Android Studio将该活动移动到活动包中,我开始面临你所描述的同样问题,下面是我的源代码

    public class BootstrapActivity extends ActionBarActivity {

        private static final String TAG = "BootstrapActivity";

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_bootstrap);
        }

        public void startServiceOnClickHandler(View view) {

            Intent intent = new Intent(BootstrapActivity.this , AnalyzerService.class);
            startService(intent);
        }
}

在 startServiceOnClickHandler 方法中,它显示了一条错误消息,“无法解析构造函数 Intent” 我在谷歌中搜索了很多,发现

当我将文件从一个包移动到另一个包时,我的清单文件不会更新,在清单中我们提到了活动名称及其包路径,在我的例子中它应该是

   android:name=".activities.BootstrapActivity"

但它是

   android:name=".BootstrapActivity"

因此,Android studio 并不知道活动文件夹中存在一个名为 BootstrapActivity 的类,

这似乎是 android studio 工作方式中的一个错误。当我将活动类文件从一个包移动到另一个包时,Android Studio 必须更新清单文件。

我发布这篇文章是为了帮助其他可能使用类似用例到达这篇文章的人。

原文由 Aravind.HU 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题