我是android开发和java和xml编码的新手。
但是我正在学习本教程:
然后在使用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);
}
答案 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。
我发布此帖子是为了帮助那些可能使用类似用例到达此帖子的人。