사용자가 미국 주 중 하나를 선택하고 선택된 주를 그 주에있는 모든 카운티를 나열하는 데 사용하는 간단한 응용 프로그램이 있습니다. onCreate에서 StateAdapter라는 arrayadapter를 만들고 spinner 객체 "spinState"로 설정했습니다. 그런 다음 리스너 클래스 StateOnItemSelectedListener를 초기화했습니다. onCreate 밖에서, 어떤 상태가 회 전자에서 선택되었는지 읽고 나머지는 응용 프로그램의 작업을 수행하는 StateOnItemSelectedListener 클래스가 있습니다.Spinner에서 선택한 이벤트의 문자열을 읽는 방법
두 가지 문제가 있습니다. 디버그 모드에서 코드를 한 번 실행하면 "parent.getItemAtPosition (pos) .toString"이 선택된 상태의 문자열 값을 반환하지 않습니다. .
둘째, 실행 중일 때 앱이 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-char 버퍼가 필요한지를 명시하는 것이 더 낫습니다. 1211 16 : 24 : 52.279 : D/AndroidRuntime (664) : 종료 VM 12-11 16 : 24 : 52.279 : dalvikvm (664) : threadid = 1 : catch되지 않은 예외로 스레드 종료 중 (그룹 = 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 android.widget.ArrayAdapter.createViewFromResource –