我有一個簡單的應用程序,用戶在其中選擇美國州之一,選擇的州將用於列出該州所有縣。在onCreate中,我構建了一個名爲Stateadapter的數組適配器,並將其設置爲spinner對象「spinState」。然後我初始化了一個監聽器類StateOnItemSelectedListener。在onCreate之外,我有StateOnItemSelectedListener類,它將讀取在微調器中選擇哪個狀態,然後執行應用程序其餘任務。如何從Spinner選擇的事件中讀取字符串
我有兩個問題:當在調試模式下單步執行代碼時,「parent.getItemAtPosition(pos).toString」不會返回所選狀態的字符串值(儘管許多Web示例表明這應該起作用) 。
第二,在運行時,應用程序在通過onCreate時觸發偵聽器,並且所有顯示都很好,直到用戶選擇了ui上的微調器,然後應用程序關閉。
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
spinState = (Spinner)this.findViewById(R.id.spinState);
ArrayAdapter<String> Stateadapter = new ArrayAdapter<String> (this,android.R.layout.simple_spinner_item, array_spinState);
Stateadapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinState.setAdapter(Stateadapter);
spinState.setOnItemSelectedListener(new StateOnItemSelectedListener());
}
public class StateOnItemSelectedListener implements OnItemSelectedListener
{
public void onItemSelected(AdapterView<?> parent, View itemSelected, int pos, long id)
{ State = spinState.getItemAtPosition(pos).toString();
//Do Stuff base on State;
}
public void onNothingSelected(AdapterView<?> parent)
{ //Do nothing here
}
}
什麼是你得到的logcat錯誤? –
12-11 16:24:47.040:I/global(664):在BufferedReader構造函數中使用的默認緩衝區大小。如果需要8k字符的緩衝區,那麼最好是明確的。 12-11 16:24:52.279 D/AndroidRuntime(664):關閉虛擬機 12-11 16:24:52.279:W/dalvikvm(664):threadid = 1:線程退出與未捕獲的異常(組= 0x4001d800 ) 12-11 16:24:52.309:E/AndroidRuntime(664):致命異常:主 12-11 16:24:52.309:E/AndroidRuntime(664):java.lang.NullPointerException 12-11 16: 24:52.309:E/AndroidRuntime(664):\t at android.widget.ArrayAdapter.createViewFromResource –