Android onListItemClick异常:“java.lang.String无法强制转换为android.database.Cursor”

时间:2017-07-03 01:35:27

标签: android simplecursoradapter android-cursoradapter onitemclicklistener android-cursor

正如标题所说,它从我下面粘贴的代码中得到了这个例外。我尝试使用未注释的代码以及之前的IF块的注释部分使其工作。 我得到的错误是:java.lang.ClassCastException: java.lang.String cannot be cast to android.database.Cursor我不明白,因为listview中的项应该是一个字符串!有什么想法吗?

public class ListScoutActivity extends ListActivity {

    private DBHelper database;
    private ListView listav;
    private Cursor cursor;
    ArrayList<String> stringlist = new ArrayList<String>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_list_scout);

        database = new DBHelper(getApplicationContext());
        SQLiteDatabase db = database.getWritableDatabase();

        listav = this.getListView();
        listav.setVisibility(View.VISIBLE);

        int codpartita;
        String team;

        cursor = db.rawQuery("SELECT _codpartita as _id, team,  FROM partita ORDER BY _codpartita DESC", null);
        cursor.moveToFirst();

        while ( !cursor.isAfterLast() ) {
            team = cursor.getString(cursor.getColumnIndex("team"));  
            stringlist.add(team);
            cursor.moveToNext();
        }

        cursor.moveToFirst();

        if (cursor.getCount()>0) {
            SimpleCursorAdapter adapter = new SimpleCursorAdapter(ListScoutActivity.this,
                    android.R.layout.simple_list_item_1, cursor, new String[]{"team"},
                    new int[]{android.R.id.text1}, 0);
            listav.setAdapter(adapter);
            adapter.notifyDataSetChanged();
        }

//        ArrayAdapter<String> adapter = new ArrayAdapter<String>(ListScoutActivity.this,
//                android.R.layout.simple_list_item_1, android.R.id.text1, stringlist);
//        listav.setAdapter(adapter);
        db.close();
    }

    @Override
    protected void onListItemClick(ListView l, View v, int position, long id) {
        Cursor cursor = (Cursor)l.getItemAtPosition(position);
        //.. other things..
    }

0 个答案:

没有答案
相关问题