从数据库中填充Spinner的数据中的问题

时间:2013-12-05 07:31:30

标签: android sqlite spinner

我有一个外部数据库到assets文件夹。我成功地将它加载到我的模拟器上并对其执行操作。 我也知道如何使用Spinner和ListView中的查询来填充数据。

主要问题:我正在运行一个查询,它从表中提供了所有数据。我将它们存储在Bean类中。现在我已经成功地将其中一个列数据填充到一个微调器中。

但是,当我打开微调器时,我没有获得数据库值,而是将对象名称转换为微调器

FOR例如 - com.mypackageName.BeanPackage.BeanClass@411da123

我得到了整个微调器,而不是数据库中的数据(例如13,13 / 1)。

我的代码:

DBHelper类中的查询:

public Cursor getBusNumbers() {
    // date="21-10-2013";

    String myPath = DB_PATH + DB_NAME;
    db = SQLiteDatabase.openDatabase(myPath, null,
            SQLiteDatabase.OPEN_READONLY);
    return db.rawQuery("select * from table", null);
}

在我的主要活动中:

适配器代码:

 adapter = new Adapter(MainActivity.this,android.R.layout.simple_spinner_item, array);

   route.setAdapter(adapter);
    adapter.notifyDataSetChanged();

我的GetView方法:

public View getView(int position, View convertView, ViewGroup parent) {

            if (convertView == null) {
                convertView = ((LayoutInflater) context
                        .getSystemService(Context.LAYOUT_INFLATER_SERVICE))
                        .inflate(layout, null);
            }


            final Bean item = items.get(position);
            final TextView km = (TextView) convertView
                    .findViewById(android.R.id.text1);

            km.setText(item.getRouteNumber());
            km.setTextSize(22);
            return convertView;
        }
    }

填充数组的方法:

private void loadFieldDatabase() {

        Cursor c = dbhelper.getBusNumbers();
        if (c != null && c.getCount() > 0) {
            c.moveToFirst();
            for (int count = 0; count < c.getCount(); count++) {
                Bean detail = new Bean();

                detail.setRouteNumber(c.getString(c
                        .getColumnIndex("route_number")));

                array.add(detail);
                c.moveToNext();
            }
            c.close();
            //dbhelper.close();
        }

2 个答案:

答案 0 :(得分:0)

在您的代码中,您将Bean对象设置为Textview,而不是您需要设置的项目。

试试这段代码可能会对您有所帮助。

private void loadSpinnerCourse() {
        // TODO Auto-generated method stub
        List<String> lables = getAllCourse();

        // Creating adapter for spinner
        dataAdapterCourse = new ArrayAdapter<String>(getActivity(),
                android.R.layout.simple_spinner_item, lables);
        // Drop down layout style - list view with radio button
        dataAdapterCourse
                .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        // attaching data adapter to spinner
        mLesson_course.setAdapter(dataAdapterCourse);
    }

    private List<String> getAllCourse() {
        // TODO Auto-generated method stub
        List<String> labels = new ArrayList<String>();
        mCoureseIdList = new ArrayList<String>();

        ExamDatabaseConnector dbConnector = new ExamDatabaseConnector(
                getActivity());
        dbConnector.open();
        String selectQuery = "SELECT  * FROM courses_stud";

        Cursor cursor = dbConnector.database.rawQuery(selectQuery, null);

        // looping through all rows and adding to list
        if (cursor.moveToFirst()) {
            do {
                mCoureseIdList.add(cursor.getString(0));
                labels.add(cursor.getString(1));
            } while (cursor.moveToNext());
        }

        // closing connection
        cursor.close();
        dbConnector.database.close();

        // returning lables
        return labels;
    }

答案 1 :(得分:0)

    Cursor cursor = db.getAllBhashat();
    SpinnerArr = new String[cursor.getCount()+1];


    SpinnerArr[0] = "<-SELECT->";


    if(cursor.moveToNext()){
        int i = 1;
        do {
            SpinnerArr[i] = cursor.getString(cursor
                    .getColumnIndex("LocalityTitle_E"));



            i++;
        } while (cursor.moveToNext());
    }if (cursor != null && !cursor.isClosed()) {
        cursor.close();
    }
    ArrayAdapter<String> adapter_sorCat = new ArrayAdapter<String>(
            this, android.R.layout.simple_spinner_item, SpinnerArr);
    Spinner.setAdapter(adapter_sorCat);
    adapter_sorCat
            .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
 }