找不到符号类Intent

时间:2014-10-07 23:21:38

标签: java android android-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时出现此错误。单词"意图"在开关下变为红色并且出现错误"找不到符号类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);
}

2 个答案:

答案 0 :(得分:22)

再次查看您的AlarmListActivity并检查顶部的import语句,并确保它包含该行:

import android.content.Intent;

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

当您编写新的Intent()时,编译器会看到您正在请求构造新对象,但由于该对象在java.lang包中找不到,因此需要知道在哪里查找蓝图构建该对象。 import语句是该蓝图的位置。

我看了一下教程,并且以经验丰富的程序员的方式,作者似乎已经掩盖了一些基本的,但仍然是重要的事情,例如使他的示例代码工作的import语句。

答案 1 :(得分:2)

通过了解Android Studio索引文件的方式,我遇到了同样的问题,正如您所知,构建Android应用程序是一个非常复杂的过程。所以Android studio有一些内部引用,它会不断更新你创建的每个文件。

我在搜索解决方案时到达了这篇文章,

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

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

    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”我在google搜索了很多,发现了

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

   android:name=".activities.BootstrapActivity"

但它是

   android:name=".BootstrapActivity"

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

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

我发布此帖子是为了帮助那些可能使用类似用例到达此帖子的人。