2015-05-05 2 views
0

Я создаю приложение для Android, которое состоит из вида списка, когда кнопка была нажата, просмотр списка был заполнен данными, содержащимися в sqlite. я сделал некоторые вещи, ниже я не получаю какие-либо ошибки, но он не показывал какой-либо извлекаться data.Please помочь мне с этим Это моя активность, когда кнопка нажата:Как отобразить представление списка, заполненное из данных sqlite в android

fetch_database.setOnClickListener(new View.OnClickListener() { 


      @Override 
      public void onClick(View v) { 

       progressGenerator.start(fetch_database); 
       media_player = media_player.create(DatabaseListView.this, R.raw.retrievingfromdatabase); 
       media_player.start(); 


       String[] from = {logindatabase_adapter.USER_NAME,logindatabase_adapter.USER_PASSWORD}; 
       int[] to = {R.id.txt_username,R.id.txt_pasword}; 
       cursor = logindatabase_adapter.feching_Data(); 
       cursoradapter = new SimpleCursorAdapter(DatabaseListView.this, R.layout.listcell, cursor, from, to); 
       database_results.setAdapter(cursoradapter); 
      } 
     }); 

Это мой logindatabase адаптер:

package com.developer.milanandroid; 

import android.content.ContentValues; 
import android.content.Context; 
import android.database.Cursor; 
import android.database.SQLException; 
import android.database.sqlite.SQLiteDatabase; 
import android.view.View; 

public class LoginDataBaseAdapter 
{ 
     //Database name 
     static final String DATABASE_NAME = "MilanloginRegistration.db"; 
     static final int DATABASE_VERSION = 1; 
     public static final int NAME_COLUMN = 1; 
     // TODO: Create public field for each column in your table. 
     // SQL Statement to create a new database. 
     public static final String TABLE_NAME="MilanLoginregistration"; 
     public static final String ID="_id"; 
     public static final String USER_NAME="USERNAME"; 
     public static final String USER_PASSWORD ="PASSWORD"; 


     static final String DATABASE_CREATE = "create table "+ TABLE_NAME + 
            "(" +ID+" integer primary key autoincrement,"+"USERNAME text UNIQUE,"+USER_PASSWORD+" text); "; 
     // Variable to hold the database instance 
     public SQLiteDatabase db; 
     // Context of the application using the database. 
     private final Context context; 
     // Database open/upgrade helper 
     private DataBaseHelper dbHelper; 
     public LoginDataBaseAdapter(Context _context) 
     { 
      context = _context; 
      dbHelper = new DataBaseHelper(context, DATABASE_NAME, null, DATABASE_VERSION); 
     } 
     public LoginDataBaseAdapter open() throws SQLException 
     { 
      db = dbHelper.getWritableDatabase(); 
      return this; 
     } 
     public void close() 
     { 
      db.close(); 
     } 

     public SQLiteDatabase getDatabaseInstance() 
     { 
      return db; 
     } 



     public void insertEntry(String username,String password) 
     { 
      ContentValues newValues = new ContentValues(); 

      newValues.put("USERNAME",username); 
      newValues.put("PASSWORD",password); 

      // Insert the row into your table 
      db.insert("MilanLoginregistration",null,newValues); 
      ///Toast.makeText(context, "Reminder Is Successfully Saved", Toast.LENGTH_LONG).show(); 
     } 
     public int deleteEntry(String username,String password) 
     { 
      //String id=String.valueOf(ID); 
      String where="USERNAME=?"; 
      int numberOFEntriesDeleted= db.delete("MilanLoginregistration", where, new String[]{username,password}) ; 
      // Toast.makeText(context, "Number fo Entry Deleted Successfully : "+numberOFEntriesDeleted, Toast.LENGTH_LONG).show(); 
      return numberOFEntriesDeleted; 
     } 

     public Cursor feching_Data(){ 

      String[] columns = {ID,USER_NAME,USER_PASSWORD}; 
      db = dbHelper.getWritableDatabase(); 
      Cursor cursor = db.query(TABLE_NAME, columns,null,null,null,null,null); 
      return cursor; 

     } 
     public String getSinlgeEntry(String userName) 
     { 
      Cursor cursor=db.query("MilanLoginregistration", null, " USERNAME=?", new String[]{userName}, null, null, null); 
      if(cursor.getCount()<1) // UserName Not Exist 
      { 
       cursor.close(); 
       return "NOT EXIST"; 
      } 
      cursor.moveToFirst(); 
      String password= cursor.getString(cursor.getColumnIndex("PASSWORD")); 
      cursor.close(); 
      return password;     
     } 
     public String checkSinlgeEntry(String userName) 
     { 
      Cursor cursor=db.query("MilanLoginregistration", null, " USERNAME=?", new String[]{userName}, null, null, null); 
      if(cursor.getCount()>=1) // UserName Exist 
      { 
       cursor.close(); 
       return "NOT EXIST"; 
      } 
      cursor.close(); 
      return "";    
     } 
     public void updateEntry(String user_name,String pasword) 
     { 
      // Define the updated row content. 
      ContentValues updatedValues = new ContentValues(); 
      // Assign values for each row. 
      updatedValues.put("USERNAME", user_name); 
      updatedValues.put("PASSWORD",pasword); 


      String where="USERNAME = ?"; 
      db.update("MilanLoginregistration",updatedValues, where, new String[]{user_name});    
     } 
     /*public void Display(View v){ 
      Cursor c = db.rawQuery("select * from MilanloginRegistration", null); 
      admin_settings_child.text_fetched_database_results.setText(""); 
      c.moveToFirst(); 
      do{ 
       String username = c.getString(c.getColumnIndex("USERNAME")); 
       String password = c.getString(1); 
       admin_settings_child.text_fetched_database_results.append("USERNAME::-->"+username+"PASSWORD::-->"+password+"\n"); 

      }while(c.moveToNext()); 
     }*/ 
    } 
+0

У вас есть установка в feching_Data, которое есть в случае, если нет никаких данных или нуль? Переходит ли он на первую запись после? Похоже, это не так, и вы должны убедиться, что вы внедряете эти безопасные охранники. – Kat

ответ

1

Вместо того, чтобы заново изобретать колесо, я бы рекомендовал использовать более надежные решения со всеми рекомендуемыми строительными блоками (курсор адаптера, контент-провайдер, загрузчик данных, ...) Это сэкономит вам много скорбь позже. Вначале он выглядит немного запутанным, но его стоит реализовать. Такой подход широко освещались в другом месте (Lars Vogel, Wolfram Rittmeyer, Udacity Class (Lesson 4) ...)

Я положил одно такое решение на GitHub, и вы можете исследовать его (прилагаемое APK покажет, как он ведет себя). В качестве дополнительного бонуса есть также ПОРТРЕТ/ЛАНДШАФТ с различными макетами телефона/планшета.

Good Luck

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