Показать выбранное значение listview в логической ошибке textview «android.database.sqlite.SQLiteCursor@4274b148»

#android #sqlite #listview

#Android #sqlite #просмотр списка

Вопрос:

Я устал от всех существующих ответов, но ни один из них не соответствует моим потребностям. В принципе, у меня есть listView заполненная из моей локальной базы данных. Я просто хочу, чтобы показать выбранное значение из него в textView

Например: если пользователь выбирает «Вакцину» из list-view , я хочу, чтобы «Вакцина» отображалась в TextView . Один из кодов, которые я пробовал до сих пор, это

 @Override
    public void onItemClick(AdapterView<?> parent, View view, int position,
            long id) {
        // TODO Auto-generated method stub
        TextView tv = (TextView) findViewById(R.id.textView1);
        String str = parent.getItemAtPosition(position).toString();
        tv.setText(str);
    }
 

Приведенный выше код мне дан android.database.sqlite.SQLiteCursor@4274b148 . но мне нужен фактический текст, в котором хранится «Вакцина».

Код, который заполняет представление списка

 private void populateListViewAppTypeFromDB() 
    {
        // TODO Auto-generated method stub
        Cursor cursor = dbmanager.getAllAppTypeRows();

        String[] fromFieldNames = new String[] {NewDatabaseManager.KEY_TYPEOFAPPLIANCE};
        int[] toViewIds = new int[] {R.id.appTypeNamefield};

        @SuppressWarnings("deprecation")
        SimpleCursorAdapter myCursorAdapter = new SimpleCursorAdapter 
            (
                this, 
                R.layout.item_layout_app_type,
                cursor,
                fromFieldNames,
                toViewIds
            );


        ListView myAppTypeList = (ListView) findViewById (R.id.appTypeListFromDatabase);

        myAppTypeList.setAdapter(myCursorAdapter);
    }
 

Комментарии:

1. Показать код, который помещает элементы в представление списка.

2. Спасибо за ответ. я обновил, как вы просили. пожалуйста, проверьте раздел «Код, который заполняет listview»

Ответ №1:

Похоже, вы используете CursorAdapter . В этом случае getItemAtPosition(position) возвращает исходную Cursor позицию, и вам нужно прочитать содержимое столбца, которое вы хотите отобразить в вашем TextView

например:

 Cursor cursor = (Cursor) parent.getItemAtPosition(position); 
String str = cursor.getString(cursor.getColumnIndex("name"));
 

где «name» — это имя столбца, который вы хотите получить

Комментарии:

1. Ты крутой чувак!! Если бы я владел компанией, я бы нанял вас на желаемую зарплату. Большое спасибо 🙂