2014-10-07 90 views
4

我是新來的android開發和編碼java和xml。找不到符號類意圖

但我下面這個教程:

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

然後使用意圖,當我有這個錯誤。開關下的詞「意圖」變成了紅色,並且出現錯誤「找不到符號類意圖」

有人可以向我解釋發生了什麼以及如何解決這個問題嗎?

這是AlarmListActivity.java

下,在您的AlarmListActivity我的代碼的最後一部分
@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

這個詞的意圖不是紅色在這裏,但它的紅色在我的Java。哪裏不對?我也有以下錯誤信息 錯誤:任務':app:compileDebugJava'的執行失敗。 >編譯失敗;詳細信息請參閱編譯器錯誤輸出。 這是什麼? – 2014-10-07 23:22:42

+0

該錯誤消息不是錯誤。這只是一個通知,你不能用現有的錯誤編譯你的類。 – MarsAtomic 2014-10-07 23:43:48

回答

13

再看看,並檢查import語句在頂部,並確保它包括行:

import android.content.Intent; 

如果您打算使用任何不屬於java.lang包的預先存在的類,通常必須導入這些類。例如,Android Intent是由Android開發團隊編寫的預構建類,可用於通知其他應用程序/活動。如果你想使用Intent,那麼你必須導入包含Intent的包。

當你編寫新的Intent()時,編譯器發現你正在請求構造一個新對象,但是因爲該對象在java.lang包中找不到,所以它需要知道在哪裏尋找構建這個對象的藍圖。進口聲明是該藍圖的位置。

我看了一遍教程和經驗豐富的程序員的方式,筆者似乎已經掩蓋了一些基本但重要的東西,例如使他的示例代碼有效的導入語句。

+0

非常感謝。我認爲它的工作。但現在「Intent」和「AlarmDetailsActivity」這個詞變成黑色。他們應該是藍色的?或者沒關係? 你能給我一個關於導入的簡要說明嗎?你經常需要導入一些東西嗎?以及如何知道我是否需要導入某些內容以及寫什麼? 我提到的錯誤也消失了,所以我認爲它很好。 – 2014-10-07 23:41:56

+0

查看這個[tutorial](http://howtoprogramwithjava.com/java-imports/)瞭解更多關於導入的信息。我沒有看得太緊,但乍一看,似乎涵蓋了所有的基礎。如果此答案對您有幫助,請點擊旁邊的複選標記,以便將來看到此問題的人員將知道哪些內容有效。如果您還有其他問題,請隨意分開發布。 – MarsAtomic 2014-10-07 23:46:51

1

我剛剛解決了同樣的問題,通過了解Android Studio索引文件的方式,正如您所知構建Android應用程序非常複雜。所以Android studio有一些內部引用,它會不斷更新您創建的每個文件的更改。

我到這個職位,同時尋找解決方案,

這是我得到了這個問題

我通常不會主體工程包下創建活動,創建子包來組織文件,按照我使用的設計模式,例如,如果我的APP名稱是com.example.testingaravind,那麼我通常會創建包,例如activites,services,模型,管理器等等......所以,今天我剛剛創建的活動,然後再通過Android Studio中移動該活動進入activites包裝,我開始對着你描述了同樣的問題,下面是我的源代碼

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它顯示一個錯誤說, 「無法解析構造函數意圖」我在谷歌搜索了很多,發現

當我從一個包文件移動到其他包時,我的清單文件不會得到更新,在清單中我們提到的活動名稱及其包裝路徑在我的情況下應該是

android:name=".activities.BootstrapActivity" 

但它是

android:name=".BootstrapActivity" 

正因爲如此,Android的工作室是不知道一個叫BootstrapActivity類的活動文件夾內的存在,

這似乎是在怎樣的Android工作室的工作方式中的錯誤。當我將活動類文件從一個包移動到另一個包時,Android Studio必須更新清單文件。

我發佈此信息以幫助其他可能以類似用例抵達此帖子的人。

+0

謝謝你的回答。這對我進一步瞭解android開發非常有幫助。這就是說,我的問題實際上是一個簡單的不導入意圖。當我剛開始學習android開發時,我遇到了這個問題。但謝謝你的答案。這是非常有教育意義的,並將在未來有用。 – 2015-12-08 08:45:15