Android-获取spinner的选定值返回Android.content.ContentResolver$CursorWrapperInner

Android-获取spinner的选定值返回Android.content.ContentResolver$CursorWrapperInner,android,spinner,android-spinner,Android,Spinner,Android Spinner,我的问题与(以及其他类似的问题)类似,但所提出的解决方案都不适合我。所有这些 String selectedShelf = spinner.getItemAtPosition(spinner.getSelectedItemPosition()).toString(); String selectedShelf = spinner.getSelectedItem().toString(); String selectedShelf = spinner.getItemAtPosition(posit

我的问题与(以及其他类似的问题)类似,但所提出的解决方案都不适合我。所有这些

String selectedShelf = spinner.getItemAtPosition(spinner.getSelectedItemPosition()).toString();
String selectedShelf = spinner.getSelectedItem().toString();
String selectedShelf = spinner.getItemAtPosition(position).toString();
String selectedShelf = parentView.getItemAtPosition(position).toString();
…导致
selectedShelf
的内容为“android.content.ContentResolver$CursorWrapperInner@43bb89b0“

如何检索所选字符串的值

这是我的密码:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
    Bundle savedInstanceState) {

    // Inflate the layout for this fragment
    View fragmentView =  inflater.inflate(R.layout.fragment_browse_spinner, container, false);

    Spinner spinner = (Spinner)fragmentView.findViewById(R.id.browseSpinner);
    spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
            if (id != -1L) {
                String selectedShelf = ...;
                Log.d(LOG_TAG, "selectedShelf: " + selectedShelf);              
            }
        }

        @Override
        public void onNothingSelected(AdapterView<?> parentView) {
        }

    });

    adapter = new SimpleCursorAdapter(getActivity(),
            android.R.layout.simple_spinner_item, // This is the layout that will be used for the standard/static part of the spinner. (You can use android.R.layout.simple_list_item_2 if you want two lines to be shown here.)
            null,
            new String[] {DbContentProvider.KEY_SHELF_NAME, DbContentProvider.KEY_EXTRA_SHELF_INFO},
            new int[]{android.R.id.text1, android.R.id.text2},
            0
    );

    // This sets the layout that will be used when the dropdown views are shown. I'm using android.R.layout.simple_list_item_2 so the subtext will also be shown.
    adapter.setDropDownViewResource(android.R.layout.simple_list_item_2);

    spinner.setAdapter(new NothingSelectedSpinnerAdapter(
            adapter,
            R.layout.browse_spinner_row_nothing_selected,
            getActivity()));

    getLoaderManager().initLoader(0, null, this);

    return fragmentView;
}
@覆盖
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
//为该碎片膨胀布局
视图碎片视图=充气机。充气(R.layout.fragment\u browse\u微调器,容器,false);
微调器微调器=(微调器)fragmentView.findViewById(R.id.browseSpinner);
spinner.setOnItemSelectedListener(新的OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView父视图、视图selectedItemView、整型位置、长id){
如果(id!=-1L){
字符串selectedShelf=。。。;
Log.d(日志标签,“selectedShelf:+selectedShelf”);
}
}
@凌驾
未选择公共无效(AdapterView父视图){
}
});
adapter=new SimpleCursorAdapter(getActivity(),
android.R.layout.simple\u微调器\u项,//这是将用于微调器的标准/静态部分的布局。(如果希望在此处显示两行,可以使用android.R.layout.simple\u列表\u项\u 2。)
无效的
新字符串[]{DbContentProvider.KEY_SHELF_NAME,DbContentProvider.KEY_EXTRA_SHELF_INFO},
新int[]{android.R.id.text1,android.R.id.text2},
0
);
//这将设置显示下拉视图时使用的布局。我使用的是android.R.layout.simple_list_item_2,因此也将显示子文本。
adapter.setDropDownViewResource(android.R.layout.simple_list_item_2);
spinner.setAdapter(新的NothingSelectedSpinnerAdapter(
适配器,
R.layout.browse\u微调器\u行\u未选择任何内容,
getActivity());
getLoaderManager().initLoader(0,null,this);
返回碎片视图;
}

我已经找到了解决方案:

    spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {

            TextView selectedShelfTextView = (TextView)selectedItemView.findViewById(android.R.id.text1); // You may need to replace android.R.id.text1 whatever your TextView label id is
            String selectedShelf = selectedShelfTextView.getText().toString();
spinner.setOnItemSelectedListener(新的OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView父视图、视图selectedItemView、整型位置、长id){
TextView selectedShelfTextView=(TextView)selectedItemView.findViewById(android.R.id.text1);//您可能需要替换android.R.id.text1,无论您的TextView标签id是什么
String selectedShelf=selectedShelfTextView.getText().toString();