2011-12-30 2 views
0

Я ищу, чтобы задавать вопросы и ответы. Я взял текстовое изображение и 4 группы радиогрупп. И я извлекаю данные из внешнего файла данных из папки с ресурсами .when я устанавливает приложение в emulater он работает fine.when я вновь открывает приложение в emulater он просто показывает вопрос не показывая какой-либо текст в радио buttons.here мой код в файле базы данныхприложение, не отображающее данные, когда вы открываете его второй раз

public String makeatext(String My_database_table,int i) { 
    SQLiteDatabase myDB = getDatabase(); 
    String results = new String(); 

    try { 
     String firstColumn = "questions"; 
    // final String KEY_ROWID = "id"; 

     // Cursor c = myDB.rawQuery("SELECT questions FROM " + 
     // My_database_table+ ";",null); 
     Cursor c = myDB.query(true, My_database_table, 
       new String[] { firstColumn },null, null, null, null, null, 
       null); 


     int iquestion = c.getColumnIndex(firstColumn); 
     if(c.moveToPosition(i)){ 
     results = c.getString(iquestion)+"\n"; 
     } 

     //while (c.moveToPosition(1)) { 
      //String firstName = c.getString(iquestion); 
      //results =(" "+ firstName + " "); 
     //} 
     return results; 


    } catch (Exception e) { 
     Log.e("ERROR","ERROR in Make test file :"+e.toString()); 
     e.printStackTrace(); 
     // TODO: handle exception 
    } 

    return results; 
} 

и в файле активность я просто звоню как

String shoow = myDb.makeatext("question", Qno); 

showQues tion.setText (shoow); и в верхней части метода oncreate i инициализировал базу данных как private final DataBaseHelper myDb = new DataBaseHelper(this); может ли кто-нибудь сказать мне, почему это происходит. Мне также нужно написать цикл for в файле активности, или я возьму курсор в классе активности.

плз помочь мне

заранее спасибо

для радиокнопок код в файле базы данных выглядит следующим образом, как у меня есть 4 кнопки код для 4 кнопки будут такими же, как это

public String makeExtra1(String My_database_table ,int positions) { 
    String results = new String(); 
    try { 
     String secondColumn = "Extra1"; 
     Cursor c = myDataBase.query(true, My_database_table, 
       new String[] { secondColumn }, null, null, null, null, null, 
       null); 
     int iExtra1 = c.getColumnIndex(secondColumn); 
     if(c.moveToPosition(positions)){ 
      results = results+c.getString(iExtra1)+"\n"; 
     } 
     return results; 
    } catch (Exception e) { 
     Log.e("ERROR","ERROR in Make test file :"+e.toString()); 
     e.printStackTrace(); 
     // TODO: handle exception 
    } 
    return results;} 

и в файле активность

String showextra1 = myDb.makeExtra1("question", Qno); 
r0.setText(showextra1); 

я повторенное Тхи в 4 раза, как изменение makeExtra2,3,4 и в asseded к r1, r2, r3, как указано выше.

+0

и где вы задаете текст своих переключателей? добавьте его код тоже. – Hiral

+0

Можете ли вы предоставить полный код класса 'Activity'? – Jin35

+0

Возможно, вам нужно переопределить onResume для setText –

ответ

0
  1. После считывания данных из него следует позвонить Cursor.close(). Лучше сделать это finally{} блок.

  2. Если вы хотите поднять только один ответ на запрос - заполните where param of myDataBase.query().

+0

jin35, когда я пытаюсь добавить c.close(); в блоке finally {} он дает ошибку как неустранимый код в eclipse – MADDY

+0

oohhh спасибо, потратив день дыры, наконец, я получил приложение правильно, как я хотел – MADDY

0

недостижимый код ошибки, потому что вы пишете, наконец, {} блок после результатов возврата;

Переместить эту строку после блока finally {}, затмение не даст вам никакой ошибки.

Также используйте myDB.close(); в этом окончательном блоке.

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