2013-07-29 33 views
0

我有一個包含TextView,ListView和Spinner的活動。 微調器包含4個項目。 onCreate,微調控制器被賦予與當前活動相匹配的值之一。 當用戶點擊另一個項目時,必須啓動一個新的Intent(具有相同佈局的新活動)。 但是,當我留下未註釋的關於微調器的代碼時,我收到一個錯誤。 我的活動工作正常,沒有「實現OnItemSelectedListener」和事件的實現。Android Spinner引發異常

所以我對微調代碼:

public class ViziteIeri extends Activity implements OnItemSelectedListener{ 
... 

protected void onCreate(Bundle icicle) { 
     super.onCreate(icicle); 
     setContentView(R.layout.my_new_screen); 
       Spinner spinner = (Spinner) findViewById(R.id.spinner1); 
     ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, 
       R.array.liste_array, android.R.layout.simple_spinner_item); 
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     spinner.setAdapter(adapter); 
       spinner.setOnItemSelectedListener(this); 
} 

@Override 
    public void onItemSelected(AdapterView<?> parent, View view, 
      int pos, long id) { 
     // An item was selected. You can retrieve the selected item using 
     // parent.getItemAtPosition(pos) 

     Toast toast1 = Toast.makeText(getApplicationContext(),""+parent.getItemAtPosition(pos), Toast.LENGTH_SHORT); 
     toast1.show(); 

     Intent i = null; 
     if(parent.getItemIdAtPosition(pos) == 1) { 
      i=new Intent(ViziteIeri.this, ViziteAzi.class); 
     } 
     if(parent.getItemIdAtPosition(pos) == 2) { 
      i=new Intent(ViziteIeri.this, ViziteMaine.class); 
     } 
     if(parent.getItemIdAtPosition(pos) == 3) { 
      i=new Intent(ViziteIeri.this, ViziteViitor.class); 
     } 
     startActivity(i);   

    } 

    @Override 
    public void onNothingSelected(AdapterView<?> arg0) { 
     // TODO Auto-generated method stub 

    } 
} 

那我做錯了嗎? 對不起,以前的代碼。我只是爲了粘貼原因而改變了活動的名稱。現在他們是固定的。在我的真正的應用程序,當然活動都是正確的,否則我無法運行應用程序(右?)

@CodeMonkey - 這裏是錯誤日誌:

`07-29 23:56:56.155: D/AndroidRuntime(2474): Shutting down VM 
07-29 23:56:56.155: W/dalvikvm(2474): threadid=1: thread exiting with uncaught exception (group=0x40015560) 
07-29 23:56:56.174: E/AndroidRuntime(2474): FATAL EXCEPTION: main 
07-29 23:56:56.174: E/AndroidRuntime(2474): java.lang.NullPointerException 
07-29 23:56:56.174: E/AndroidRuntime(2474):  at android.app.Instrumentation.execStartActivity(Instrumentation.java:1374) 
07-29 23:56:56.174: E/AndroidRuntime(2474):  at android.app.Activity.startActivityForResult(Activity.java:2827) 
07-29 23:56:56.174: E/AndroidRuntime(2474):  at android.app.Activity.startActivity(Activity.java:2933) 
07-29 23:56:56.174: E/AndroidRuntime(2474):  at com.softwarex.mydualscreenpro.ViziteIeri.onItemSelected(ViziteIeri.java:89) 
07-29 23:56:56.174: E/AndroidRuntime(2474):  at android.widget.AdapterView.fireOnSelected(AdapterView.java:871) 
07-29 23:56:56.174: E/AndroidRuntime(2474):  at android.widget.AdapterView.access$200(AdapterView.java:42) 
07-29 23:56:56.174: E/AndroidRuntime(2474):  at android.widget.AdapterView$SelectionNotifier.run(AdapterView.java:837) 
07-29 23:56:56.174: E/AndroidRuntime(2474):  at android.os.Handler.handleCallback(Handler.java:587) 
07-29 23:56:56.174: E/AndroidRuntime(2474):  at android.os.Handler.dispatchMessage(Handler.java:92) 
07-29 23:56:56.174: E/AndroidRuntime(2474):  at android.os.Looper.loop(Looper.java:123) 
07-29 23:56:56.174: E/AndroidRuntime(2474):  at android.app.ActivityThread.main(ActivityThread.java:3683) 
07-29 23:56:56.174: E/AndroidRuntime(2474):  at java.lang.reflect.Method.invokeNative(Native Method) 
07-29 23:56:56.174: E/AndroidRuntime(2474):  at java.lang.reflect.Method.invoke(Method.java:507) 
07-29 23:56:56.174: E/AndroidRuntime(2474):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
07-29 23:56:56.174: E/AndroidRuntime(2474):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
07-29 23:56:56.174: E/AndroidRuntime(2474):  at dalvik.system.NativeStart.main(Native Method)` 

我改回活動名稱因爲它變得混亂。因此,活動名稱爲「ViziteIeri」 並再次...如果我讓事件賦值註釋掉,我不能沒有收到因爲你Activity類名的上述錯誤堆棧

+0

錯誤描述???? –

+0

你正在收到什麼錯誤?您能否將LogCat消息添加到此答案中以幫助進行調試? – CodeMonkey

+3

你的活動是'myActivity',你正在使用'ViziteIeri.this'?爲什麼? – Vikram

回答

0

運行活動myActivity所以 使用

i=new Intent(myActivity.this, ViziteAzi.class); 

i=new Intent(ViziteIeri.this, ViziteAzi.class); 

這一翻譯這將解決您的OnItemSelectedListener問題。

+0

中添加了錯誤日誌對不起。我修正了問題中的代碼。並解釋了爲什麼發生。 **這不是真正的問題**。如果這是問題,我將無法運行該應用程序。但事實並非如此。所以問題在於別的地方。請重新考慮,我再次爲我的拼寫錯誤的代碼致歉 – user1137313

0

我找到了我的答案。 解決的辦法是設置項目中使用微調:

spinner.setSelection(0,false); 

spinner.setOnItemSelectedListener(this); 

這解決了我的問題。沒有更多的錯誤。 謝謝你的時間。

+0

很高興您找到它! – CodeMonkey