2013-08-16 31 views
0
觸發

我當試圖開發基於This TutorialAndroid的 - 無法創建從OptionMenu

一個簡單的應用程序是什麼,我想,當用戶點擊基本上是開始新的意向是新的Android開發,目前套牢新意圖通過(所述應用的)設置菜單的按鈕。

這是我的一些代碼段:

MainActivity.java

這裏我得到與SET_TIME_REQUEST_ID一個錯誤是,在我的代碼還沒有宣佈任何地方恆定。我應該聲明它,我不知道什麼是常數的類型,我應該分配什麼值。

*** REST OF THE CODE **** 

private void setTime() { 
     Intent i = new Intent(getBaseContext(), CountdownSetTime.class); 
     startActivityForResult(i, SET_TIME_REQUEST_ID);  
} 

*** REST OF THE CODE *** 

CountdownSetTime.java

我與這部分正的錯誤是, 上下文秒設置不能解析爲任何變量。再次,我不知道該怎麼做。我應該聲明一個名爲secondsSet的變量嗎?如果是,那是什麼類型?

*** REST OF THE CODE *** 

public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.set_time); 

     context = this.getApplicationContext(); // ERROR HERE. 
     Spinner spinner = (Spinner) findViewById(R.id.spinner); 
     ArrayList<Integer> spinnerList = new ArrayList<Integer>(); 

     for (int i = MIN; i <= MAX; i++) { 
     spinnerList.add(i); 
     } 

     ArrayAdapter<Integer> adapter = new ArrayAdapter<Integer>(context, 
       android.R.layout.simple_spinner_item, spinnerList); 

     adapter.setDropDownViewResource(
       android.R.layout.simple_spinner_dropdown_item); 

     spinner.setAdapter(adapter); 
     spinner.setOnItemSelectedListener(new OnItemSelectedListener() { 
     public void onItemSelected(AdapterView<?> parent, 
      View view, int pos, long id) { 
      secondsSet = (Integer)parent.getItemAtPosition(pos); // ERROR HERE 
     } 
     public void onNothingSelected(AdapterView<?> parent) { 
      // Do nothing. 
     } 
    }); 
} 

*** REST OF THE CODE *** 

的manifest.xml

我這個毫無本事。我不知道我怎麼能註冊我的新意圖。

<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <activity 
     android:name="com.gelliesmedia.countdown.MainActivity" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity 
     android:name="com.gelliesmedia.countdown.CountdownSetTime" 
     android:label="@string/app_name" 
     android:parentActivityName="com.gelliesmedia.countdown.MainActivity" > 
     <meta-data 
      android:name="android.support.PARENT_ACTIVITY" 
      android:value="com.gelliesmedia.countdown.MainActivity" /> 
    </activity> 
</application> 

任何人都可以指出我正確的方向嗎?

+0

一些事情你有沒有在你的清單文件添加CountdownSetTime? – HpTerm

+0

很好的問題。答案是'不'。我已經編輯我的問題,所以它現在包括我的manifest.xml – Jeremy

回答

1

我已閱讀您給出的教程作爲鏈接。該教程沒有給出完整的代碼。根據我所看到的你提到的變量必須被定義。

對於SET_TIME_REQUEST_ID通常你一開始用類似的東西

private static final int SET_TIME_REQUEST_ID = 1; 

因爲onActivityResult(int, int, Intent) 該ID是你的內部標識添加此。我把1,但你可以把任何數字。這是您的ID,這樣當活動關閉時,您可以獲取結果。

所以是的,你必須定義它。

secondsSet相同。

該類型似乎是Integer,因爲parent.getItemAtPostion轉換爲Integer。它被使用但未被定義。似乎我是一個全球變數。你放在班上的那些人。

所以,是的,你也必須定義它:-)

最後它是context相同。它被使用但未被聲明。看來你使用的教程全局聲明所有這些變量。

編輯

manifest文件告訴意圖(活動)存在的系統。

你應該有這樣的

<activity 
    android:name="com.gelliesmedia.countdown.CountdownSetTime"> 
</activity> 
+0

Thx ..我會試一試。順便說一下,我編輯我的問題與在manifest.xml中註冊的活動 – Jeremy

+0

我編輯我的答案:-) – HpTerm

+0

所以你的清單文件是正確的。 – HpTerm