У меня есть SQLite db
с 2 элементами. Я могу получить первую строку, используя HashMap
и сохранить ее в Строках, чтобы показать значения. Но я хочу получить все строки и передать их как параметры в Volley POST Stringrequest
. Чтобы проверить вывод полученного результата, я добавляю значения String в textview
, но textview
показывает только строку forst. Итак, как получить все строки?Извлечь все строки из SQLite и передать параметры POST
Activity:
public class NewActivity extends Activity{
\t
\t TextView name, mobile;
\t private SQLiteHandler db;
\t
\t @Override
\t protected void onCreate(Bundle savedInstanceState) {
\t \t // TODO Auto-generated method stub
\t \t super.onCreate(savedInstanceState);
\t \t setContentView(R.layout.newactivity);
\t \t
\t \t name = (TextView)findViewById(R.id.name);
\t \t mobile = (TextView)findViewById(R.id.mobile);
\t \t db = new SQLiteHandler(getApplicationContext());
\t }
\t
\t public void show(View v){ //on button click
\t \t
\t \t HashMap<String, String> pro = db.getProfDetails();
\t \t for(int i=0; i<pro.size();i++){
\t \t \t String proName = pro.get("name");
\t \t \t String proMobile = pro.get("mobile");
\t \t \t name.setText(proName);
\t \t \t mobile.setText(proMobile);
\t \t \t
\t \t }
\t \t
\t }
}
public class SQLiteHandler extends SQLiteOpenHelper {
\t private static final String TAG = SQLiteHandler.class.getSimpleName();
\t // All Static variables
\t // Database Version
\t private static final int DATABASE_VERSION = 1;
\t // Database Name
\t private static final String DATABASE_NAME = "android_api";
\t // Profile Settings table name
\t private static final String TABLE_PROF = "prof";
\t // Profile Settings information names
\t private static final String KEY_ID = "id";
\t private static final String KEY_NAME = "name";
\t private static final String KEY_MOBILE = "mobile";
\t public SQLiteHandler(Context context) {
\t \t super(context, DATABASE_NAME, null, DATABASE_VERSION);
\t }
\t // Creating Tables
\t @Override
\t public void onCreate(SQLiteDatabase db) {
\t \t String CREATE_PROF_TABLE = "CREATE TABLE " + TABLE_PROF + "("+KEY_ID+" INTEGER PRIMARY KEY, "+KEY_NAME+" TEXT, "+KEY_MOBILE+" TEXT" + ")";
\t \t db.execSQL(CREATE_PROF_TABLE);
\t \t Log.d(TAG, "Database tables created");
\t }
\t // Upgrading database
\t @Override
\t public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
\t \t // Drop older table if existed
\t \t db.execSQL("DROP TABLE IF EXISTS " + TABLE_PROF);
\t \t // Create tables again
\t \t onCreate(db);
\t }
\t /**
\t * Storing Prof_settings details in database
\t * */
\t public void addProfile(String name, String mobile){
\t \t SQLiteDatabase db = this.getWritableDatabase();
\t \t ContentValues values = new ContentValues();
\t \t values.put(KEY_NAME, name);
\t \t values.put(KEY_MOBILE, mobile);
\t \t // Inserting Row
\t \t //long id = db.update(TABLE_PROF, values, KEY_ID, null); //for update
\t \t //db.execSQL("delete from "+ TABLE_PROF); //clears 1st row
\t \t long id = db.insert(TABLE_PROF, null, values); // insert to 1st row
\t \t db.close(); // Closing database connection
\t \t Log.d(TAG, "New profile settings inserted into sqlite: " + id);
\t }
\t /**
\t * Getting Profile Settings data from database
\t * */
\t public HashMap<String, String> getProfDetails() {
\t \t HashMap<String, String> pro = new HashMap<String, String>();
\t \t String selectQuery = "SELECT * FROM " + TABLE_PROF;
\t \t SQLiteDatabase db = this.getReadableDatabase();
\t \t Cursor cursor = db.rawQuery(selectQuery, null);
\t \t // Move to first row
\t \t cursor.moveToFirst();
\t \t if (cursor.getCount() > 0) {
\t \t \t pro.put("name", cursor.getString(1));
\t \t \t pro.put("mobile", cursor.getString(2));
\t \t }
\t \t cursor.close();
\t \t db.close();
\t \t // return log details
\t \t Log.d(TAG, "Fetching profile details from Sqlite: " + pro.toString());
\t \t return pro;
\t }
\t /**
\t * Re crate database Delete all tables and create them again
\t * */
\t public void deleteUsers() {
\t \t SQLiteDatabase db = this.getWritableDatabase();
\t \t // Delete All Rows
\t \t db.delete(TABLE_PROF, null, null);
\t \t db.close();
\t \t Log.d(TAG, "Deleted all profile info from sqlite");
\t }
}
Показать Volley код, связанный с которой и попытались –
Здесь может быть getProfDetails() есть проблема, поскольку вы пытаетесь переписать последнее значение в HashMap, пожалуйста, проверьте, что метод db отлаживает firdst. –
Я пытаюсь проверить, вставляются ли значения. Чтобы проверить это, я извлекаю значения и устанавливаю их как textview. – Sam