2010-03-23 10 views
0

지금 당장 미쳐 버릴 것 같습니다. 나는 datatable에 의해 채워지는 회 전자를 만들려고하는데 어떤 이유로 드롭 다운 목록 항목 텍스트가 표시되지 않습니다. 나는이 모든 문제를 안고있는 사람들과 함께 다른 곳을 보았습니다. 누구든지 도울 수 있습니까 ??Android Spinner에 목록 항목이 표시되지 않습니다.

speciesList = (Spinner) findViewById(R.id.speciesList); 
    spinnerCursor = nsfdb.fetchAllSpecies(); 
    startManagingCursor(spinnerCursor); 
    //String []cArrayList = new String[]{"dog", "cat", "horse", "other"}; 
    String[] from = new String[]{"species"}; 

    int[] to = new int[]{R.id.text1}; 

    SimpleCursorAdapter locations = new SimpleCursorAdapter(this, R.layout.loc_row, spinnerCursor, from, to); 

    locations.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 

    speciesList.setAdapter(locations); 

스피너는 잘 작성되는 4 개 항목으로 채워집니다하지만 스피너를 클릭 할 때마다 나는 텍스트가 그냥 라디오 버튼 4 개 항목을 참조하십시오. 그들 중 하나를 선택하면 올바른 항목 값을 얻고 있지만 표시되는 데이터가 없습니다.

답변

0

fetchAllSpecies에서 어떤 열을 반환합니까? "_id"열과 "종"열이 모두 필요하다고 생각합니다. 하나의 열만있는 경우 id에 해당 열이 사용되었을 수 있지만 텍스트에는 사용할 수있는 것이 없습니다.

내가 겪고있는 문제인지 확실하지 않습니다. 나는 회 전자를 DB 쿼리에 직접 바인딩하지 않았습니다.

+0

반환되는 열은 _id 및 종입니다.각 열에서 값을 가져올 수 있지만 텍스트가 simple_spinner_dropdown_item에 표시되지 않습니다. 회 전자를 클릭하고 빈 행 중 하나를 선택하면 드롭 다운 목록이 사라지고 다시 내 앱을 볼 수 있으며 회 전자의 값이 정확한 값을 표시합니다. 그것의 아주 이상한 행동. –

2

ListView를 Spinner로 설정하는 코드를 복사하여 붙여 넣으려고해도 비슷한 문제가 발생했습니다.

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.array.location, android.R.layout.simple_list_item_1); 

필요

은 내가 커서 데이터에 대한 의미가 있는지 확인 R.layout.loc_row에서 레이아웃 설정을 확인하려고 할 것이다

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.array.location, android.R.layout.simple_spinner_item); 

로 변경합니다.

0

사용자 300339

나는 동일한 문제가있었습니다. 사용자 Qberticus은 나에게 좋은 포인터를주었습니다.

기본적으로 SimpleCursorAdapter locations에서 레이아웃을 지정하면 사용자 지정 레이아웃 R.layout.loc_row을 사용합니다. 후속 setDropDownViewResource 호는 동일한 자원 ID Y 인딩을 계속 사용합니다.

당신은 단지 다음을 사용할 수 있습니다

SimpleCursorAdapter locations = new SimpleCursorAdapter(this, android.R.layout.simple_spinner_item, spinnerCursor, from, to); 

locations.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 

speciesList.setAdapter(locations); 

이 내 코드에서 일했다.

알아 두어야 할 것은 에서까지 배열을 대신 사용할 수 있습니다.

int[] to = new int[]{ android.R.id.text1}; 

내가 같은 문제가 없었다 및 사용했다 Android - Text dropdown/selection of Spinner does not show

1

에서 자세한 내용을 참조하십시오 int[] to = new int[]{ R.id.text1}; 나는 위의 충고를 따랐다하고 그것을 변경 : int[] to = new int[]{ android.R.id.text1};

모든 것이 지금 잘 작동, 감사합니다!

0

동일한 오류가 발생했습니다. 내가 사용했다

  ArrayAdapter adapter = ArrayAdapter.createFromResource(getContext(),R.array.nitelik_array,android.R.layout.simple_spinner_item); 
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_item); 

나는 "simple_spinner_item"을 삭제하고 다시 작성했다. 그것은 작동합니다. 이유를 모르겠다.

관련 문제