2017-04-21 249 views
0

我想從數據庫中獲取所有數據並顯示。但它不起作用。任何人都可以告訴代碼有什麼問題嗎?謝謝。這裏是代碼SQLite從數據庫讀取數據

DataBase.java

//onlly the method 

public List<Appo> getAllData(){ 

     List<Appo> appos = new ArrayList<>(); 

     String APPOINTMENT_TABLE_NAME_SELECT_QUERY = 
       String.format("SELECT * FROM %s ", 
         APPOINTMENT_TABLE_NAME 
         ); 

     SQLiteDatabase db = getReadableDatabase(); 
     Cursor cursor = db.rawQuery(APPOINTMENT_TABLE_NAME_SELECT_QUERY, null); 
     try { 
      if (cursor.moveToFirst()) { 
       do { 
        Appo.title = cursor.getString(cursor.getColumnIndex(APPOINTMENT_COLUMN_TITLE)); 
        Appo.time = cursor.getString(cursor.getColumnIndex(APPOINTMENT_COLUMN_TITLE)); 
        Appo.details = cursor.getString(cursor.getColumnIndex(APPOINTMENT_COLUMN_DETAILS)); 
        Appo.day = cursor.getString(cursor.getColumnIndex(APPOINTMENT_COLUMN_DAY)); 
       } while(cursor.moveToNext()); 
      } 
     } catch (Exception e) { 

     } finally { 
      if (cursor != null && !cursor.isClosed()) { 
       cursor.close(); 
      } 
     } 
     return appos; 
    } 

Appo.java

public class Appo { 

    public static int id; 
    public static String title; 
    public static String time; 
    public static String details; 
    public static String day; 
} 

ViewAndEdit.java

public class ViewAndEdit extends AppCompatActivity { 

    private TextView list; 
    private Button btnview; 

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

     list =(TextView) findViewById(R.id.listappo); 
     btnview =(Button)findViewById(R.id.btnview); 

     final DataBase databaseHelper = DataBase.getInstance(this); 

     btnview.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       final EditText title = new EditText(ViewAndEdit.this); 
       new AlertDialog.Builder(ViewAndEdit.this) 
         .setTitle("Edit") 
         .setView(title) 

         .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() { 
          public void onClick(DialogInterface dialog, int which) { 
           // continue with delete 
          } 
         }) 
         .setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() { 
          public void onClick(DialogInterface dialog, int which) { 

          } 
         }) 
         .setIcon(android.R.drawable.ic_dialog_alert) 
         .show(); 

       List<Appo> appos = databaseHelper.getAllData(); 
       for (Appo appo : appos) { 
        list.setText(appo.toString()); 
       } 
      } 
     }); 

    } 
} 
+1

DataBase.java類由SQLiteOpenHelper擴展 –

+0

爲什麼在選擇查詢中使用%s – Dilip

+0

@ChamodOshan,你得到了什麼錯誤?請發佈日誌。 – Geek

回答

1
public List<Appo> getAllData() { 
    List<Appo> appos = new ArrayList<Appo>(); 
    // Select All Query 
    String selectQuery = "SELECT * FROM " + APPOINTMENT_TABLE_NAME; 

    SQLiteDatabase db = this.getWritableDatabase(); 
    Cursor cursor = db.rawQuery(selectQuery, null); 

    // looping through all rows and adding to list 
    if (cursor.moveToFirst()) { 
     do { 
      Appo appo = new Appo(); 
      appo.setTital(cursor.getString(0)); 
      appo.setTime(cursor.getString(1)); 
      appo.setDetails(cursor.getString(2)); 
      appo.setday(cursor.getString(3)); 

      //Adding contact to list 
      appos.add(appo); 
     } while (cursor.moveToNext()); 
    } 
    // return all list 
    return appos; 
} 

有關更多信息,請Android SQLite Database

+0

它正在工作。謝謝你的幫助。 –

+0

然後歡迎回答upvote(upword arrow)。 – Dilip