2011-09-26 36 views
0

我正在做HelloSpinner教程,並且我在兩個區域(onCreate方法的第4行和第6行...我標記了它們)下獲得了錯誤標記,我無法弄清楚爲什麼?我已經使用了教程中的代碼,並且我沒有從他們的指示中變化。這裏是我的代碼...Android hellospinner教程

package com.android.HelloSpinner; 

    import android.app.Activity; 

    import android.os.Bundle; 
    import android.view.View; 
    import android.widget.AdapterView; 
    import android.widget.ArrayAdapter; 
    import android.widget.Spinner; 
    import android.widget.Toast; 
    import android.widget.AdapterView.OnItemSelectedListener; 

public class Activity1 extends Activity { 
     /** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    Spinner spinner = (Spinner) findViewById(*R.id*(<-this is an error).spinner); 
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
      this, (*R.array*(<-this is an error).planets_array, android.R.layout.simple_spinner_item); 
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spinner.setAdapter(adapter); 
    spinner.setOnItemSelectedListener(new MyOnItemSelectedListener()); 

} 
public class MyOnItemSelectedListener implements OnItemSelectedListener { 

    public void onItemSelected(AdapterView<?> parent, 
     View view, int pos, long id) { 
     Toast.makeText(parent.getContext(), "The planet is " + 
      parent.getItemAtPosition(pos).toString(), Toast.LENGTH_LONG).show(); 
    } 

    public void onNothingSelected(AdapterView parent) { 
     // Do nothing. 
    } 
} 
    }////end of class Activity1 

這裏是我的佈局文件main.xml中

 <?xml version="1.0" encoding="utf-8"?> 
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:padding="10dip" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"> 
    <TextView 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="10dip" 
    android:text="@string/planet_prompt" 
/> 
<Spinner 
    android:id="@+id/spinner" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:prompt="@string/planet_prompt" 
    /> 
</LinearLayout> 

她是我的strings.xml文件從我的文件夾值

<?xml version="1.0" encoding="utf-8"?> 
    <resources> 
    <string name="planet_prompt">Choose a planet</string> 
    <string-array name="planets_array"> 
    <item>Mercury</item> 
    <item>Venus</item> 
    <item>Earth</item> 
    <item>Mars</item> 
    <item>Jupiter</item> 
    <item>Saturn</item> 
    <item>Uranus</item> 
    <item>Neptune</item> 
    </string-array> 
</resources> 
+0

你看到的具體問題是什麼?我不知道你是否有編譯時或運行時問題。 –

+0

嘗試重建項目。這有時幫助。或關閉/重新打開。 –

回答

0

以上都不爲我工作。不知何故,我最終與spinner1在我的main.xml中,我不得不改變java代碼來使用這個名字。

Spinner spinner1 = (Spinner) findViewById(R.id.spinner1); 
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
      this, R.array.planets_array, android.R.layout.simple_spinner_item); 
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spinner1.setAdapter(adapter); 

這是基於看着從spinner1.java其他一些API代碼),但在我main.xml中尋找很明顯後一種猜測: 微調 機器人:ID =「@ + ID/spinner1」

我遇到這個問題的原因是因爲我手動使用main.xml的元素,並在編輯xml之前將微調器添加到頁面。因此,系統將其命名爲spinner1。 希望這可以幫助別人避免我遇到的頭痛。