스피너를 구현하는 데 문제가있어서 원하는 방식으로 작동하도록하고 있습니다. 배열에서 채워지는 상태 약어가 포함 된 하나의 회 전자가 있습니다. 사용자가 선택한 상태에 따라 응용 프로그램에서 데이터베이스 쿼리를 수행하고 두 번째 스피너에 선택된 상태의 저장소 위치를 채워야합니다.데이터베이스에서 채워지는 스피너가 선택 항목을 선택하지 않습니다.
첫 번째 회 전자가 정상적으로 작동하고 쿼리를 성공적으로 수행하고 두 번째 회 전자를 채 웁니다. 두 번째 회 전자에서 값을 가져 와서 토스트 메시지에 표시하고 싶습니다. 다음은 문제가 발생한 지점입니다. 두 번째 회 전자가 처음 채워진 후 클릭을 등록하지 않습니다.
아래 예에서 사용자는 첫 번째 회 전자에서 RI를 선택합니다. 두 번째 회 전자가 채워지고 회 전자 "COVENTRY"의 첫 번째 마을이 건배 메시지에 표시됩니다. 두 번째 회 전자에서 다른 도시를 선택하려고하면이 문제가 발생합니다 ... 도시는 회 전자에 표시되지만 토스트 메시지에는 나타나지 않습니다.
public Cursor fetchRI() {
String RIquery = "SELECT * FROM HDStores WHERE state = 'RI' ORDER BY storenumber";
return mDb.rawQuery(RIquery, null);
}
UPDATE :
if (parent.getItemAtPosition(pos).toString().equals("RI")) {
HDHelper hdtable = new HDHelper(getApplicationContext());
hdtable.open();
Cursor c = hdtable.fetchRI();
if (c != null){
SimpleCursorAdapter hdadapter1 = new SimpleCursorAdapter(getApplicationContext(),
android.R.layout.simple_spinner_item, c, // Give the cursor to the list adapter
new String[] {c.getColumnName(2)}, // Map the column in the HD database to...
new int[] {android.R.id.text1}); // The view defined in the XML template
hdadapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
Spinner hdstoresspin = (Spinner) findViewById(R.id.hdstorespinner);
hdstoresspin.setAdapter(hdadapter1);
hdstoresspin.setOnItemSelectedListener(new MyOnItemSelectedListener());
String text = c.getString(c.getColumnIndex(hdtable.KEY_STORENUMBER));
Toast.makeText(parent.getContext(), text, Toast.LENGTH_LONG).show();
}
startManagingCursor(c);
hdtable.close();
}
다음은 위의 쿼리를 처리 관련 DBHelper의 섹션 I 실제로 OnItemSelectedListener
가 제대로 작동 생각합니다. 그것은 클릭 수를 등록하는 것이지만 클릭 한 값에 관계없이 첫 번째 값만 축배 메시지에 반영됩니다. 다시 한번, 어떤 도움이라도 대단히 감사하겠습니다. 고맙습니다.