AppCompatSpinner不是可由此SimpleCursorAdapter绑定的视图

时间:2015-07-08 10:24:47

标签: android android-studio android-spinner

我是Android开发的新手,我正在尝试使用数据库列中的数据填充微调器。我成功地用数据填充了光标对象,但显然我做错了。

我在这里读到了其他主题中的类似问题,但没有真正解决我的问题。

protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_set_grade);

    AssetDatabaseHelper dbHelper = new AssetDatabaseHelper(getBaseContext(), "myDB");
    try {
        dbHelper.importIfNotExist();
    } catch (IOException e) {
        e.printStackTrace();
    }

    db = dbHelper.getReadableDatabase();
    Cursor cursor = db.rawQuery("SELECT name AS _id from Items",null);        
    SimpleCursorAdapter adapter = new SimpleCursorAdapter(
            this,
            R.layout.activity_set_grade,
            cursor,
            fromCols,
            toViews,
            0);

    spinner = (Spinner) findViewById(R.id.items_spinner);
    adapter.setDropDownViewResource(R.id.items_spinner);
    spinner.setAdapter(adapter);
}

我的activity_set_grade包含这个微调器(如果重要的话,在RelativeLayout中):

<Spinner
    android:id="@+id/items_spinner"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" />

我在Logcat中收到以下错误消息

java.lang.IllegalStateException: android.support.v7.widget.AppCompatSpinner is not a  view that can be bounds by this SimpleCursorAdapter

提前谢谢!

1 个答案:

答案 0 :(得分:0)

我相信您正在从Android框架SimpleCursorSpinner导入,但由于您正在使用库内容,因此您也必须使用库中的SimpleCursorSpinner

这是对您的导入的简单更改:

import android.widget.SimpleCursorAdapter

import android.support.v4.widget.SimpleCursorAdapter