-1

У меня есть проблема, которая есть у меня есть список данных из моей базы данных .. Я хочу, когда я нажимаю на элемент, он начинает новую активность и отображает остальную часть выбранных данных в текстовом виде .. это мой код:набор текстов из базы данных в текстовые поля

userList.setOnItemClickListener(new OnItemClickListener() { 

     public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) { 
      Cursor c = dataBase.rawQuery("SELECT FROM" 
       +DbHelper.TABLE_NAME+"WHERE"+DbHelper.KEY_ID+"="+arg3, null); 
      Intent i = new Intent(getApplicationContext(),BookDetails.class); 
      startActivity(i); 
      t1.setText(c.getString(c.getColumnIndex(DbHelper.KEY_NAME))); 
      t2.setText(c.getString(c.getColumnIndex(DbHelper.KEY_AUTHOR))); 
      t3.setText(c.getString(c.getColumnIndex(DbHelper.KEY_ISBN))); 
      t1.setText(c.getString(c.getColumnIndex(DbHelper.KEY_COPIES))); 
      t1.setText(c.getString(c.getColumnIndex(DbHelper.KEY_INFO))); 
     } 
    });} 

, но он не работает .. когда я нажимаю на пункт приложение остановится и выйти! может кто-нибудь помочь мне пожалуйста ???? есть лучший способ, чем это сделать?

спасибо

ответ

0

t1.setText (c.getString (c.getColumnIndex (DbHelper.KEY_NAME)) + ""); или t1.setText (c.getString (c.getColumnIndex (DbHelper.KEY_NAME)). toString());

+0

попробовал оба, но не работал :(любые другие предложения? –

+0

DbHElper в порядке? – mohsen

+0

да, он отлично работает –

0

Если вы зададите вопрос о проблеме с принудительным закрытием, пожалуйста, укажите исключение stacktrace из logcat.

Есть SQL проблемы синтаксиса, которые здесь будут вызывать исключение:

Cursor c = dataBase.rawQuery("SELECT FROM" 
+DbHelper.TABLE_NAME+"WHERE"+DbHelper.KEY_ID+"="+arg3, null); 
  • Вы должны указать столбцы вы выбираете. SELECT * для выбора всех столбцов

  • Необходимо иметь пробелы между ключевыми словами, такими как FROM и WHERE, и идентификаторы, такие как имя таблицы или столбца.

  • Лучше использовать переменную привязки вместо значений переменной hardcoding в запросе.

Так, что-то вроде этого:

Cursor c = dataBase.rawQuery("SELECT * FROM " 
+DbHelper.TABLE_NAME+" WHERE "+DbHelper.KEY_ID+"=?", new String[] { arg3 }); 

Также обратите внимание, что вы переписав текст в t1 дважды. Но это не вызовет исключения.

Смежные вопросы