رفتن به مطلب
  • 0

از کدام روش جهت ذخیره اطلاعات استفاده کنم


mohammad_pyn

سوال

دوستان سلام

من یه برنامه نویس تازه وارد اندروید هستم الان دارم یه برنامه مینویسم که داره یه سری اطلاعات رو از طریق جیسون دریافت میکنه و نمایش میده.من میخوام کاری کنم که این اطلاعات بعد از دریافت در برنامه ذخیره بشه و در صورت عدم دسترسی به اینترنت از آخرین اطلاعاتی که دریافت کرده استفاده بکنه.بنظر شما برای انجام این کار من از چی استفاده کنم و راه حلتون چیه؟

همچنین میخوام برای اولین بار که برنامه نصب شد یه سری اطلاعات پیش فرض در برنامه وجود داشته باشه و با دسترسی به اینترنت همون اطلاعات دریافتی از جیسون بجای این اطلاعات پیش فرض قرار بگیره و در مراجعه بعدی از این آپدیت ها استفاده کنه.

اگه لطف کنید راهنمایی کنید خیلی خیلی ممنون میشم

لینک ارسال
به اشتراک گذاری در سایت های دیگر

2 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

دوستان سلام

من یه برنامه نویس تازه وارد اندروید هستم الان دارم یه برنامه مینویسم که داره یه سری اطلاعات رو از طریق جیسون دریافت میکنه و نمایش میده.من میخوام کاری کنم که این اطلاعات بعد از دریافت در برنامه ذخیره بشه و در صورت عدم دسترسی به اینترنت از آخرین اطلاعاتی که دریافت کرده استفاده بکنه.بنظر شما برای انجام این کار من از چی استفاده کنم و راه حلتون چیه؟

همچنین میخوام برای اولین بار که برنامه نصب شد یه سری اطلاعات پیش فرض در برنامه وجود داشته باشه و با دسترسی به اینترنت همون اطلاعات دریافتی از جیسون بجای این اطلاعات پیش فرض قرار بگیره و در مراجعه بعدی از این آپدیت ها استفاده کنه.

اگه لطف کنید راهنمایی کنید خیلی خیلی ممنون میشم

خب از دیتابیس استفاده کنید

لینک ارسال
به اشتراک گذاری در سایت های دیگر

من از روش استفاده از دیتابیس آماده که دوستان آموزش ویدیوییش رو تو همین انجمن گذاشتم میخوام استفاده کنم اما وقتی برنامه م به اون قسمت از کد میرسه stop میشه 

میشه بگید مشکل چیه ؟

دیتابیس رو هم از طریق navicat for sqlite ساختم

کد رو براتون میذارم

این کد کلاس mydatabase

package ir.kazeroonkadeh.kazeroon;

import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteQueryBuilder;

import com.readystatesoftware.sqliteasset.SQLiteAssetHelper;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
                                        //Amin Shahedi
                                        //AnswerCenter.ir
public class MyDatabase extends SQLiteAssetHelper {
    // esme database (bayad tuye folder Assets va foldere databases zakhire shode bashe)
    // mesal : assets/databases/test.db    ~>    private static final String DATABASE_NAME = "test.db";
    private static final String DATABASE_NAME = "kazeroondb.db";
    //versione morede nazar (baraye dadan update be barname
    //dar surati ke database qablan copy shode bashe va version yeksan bashe dg copy nemishe.
    //dar surati ke database qablan copy shode bashe va version ro balatar bedin db dobare copy mishe.
    private static final int DATABASE_VERSION = 1;

    public MyDatabase(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);

        // Shoma mitunin ye constructor jadid baraye addrese delkhahe db ezafe konid
        // mesl ye folder dar SD cart (be surate pishfarz tuye DirInternal zakhire mishe)
        // hatman motmaen bashin ke folder vojud dashte bashe va dastrasiharo ezafe karde bashin (dastrasi be SD card)
        // bad mitunin be surate zir constructor super ro be shekle zir taqir bedin
        //super(context, DATABASE_NAME, context.getExternalFilesDir(null).getAbsolutePath(), null, DATABASE_VERSION);


    }

    public List<String> getListOfRow(String query,String columnName) {
        //query mesle : "SELECT * FROM data"
        SQLiteDatabase sql = this.getWritableDatabase();
        Cursor c = sql.rawQuery(query, null);
        final List<String> list = new ArrayList<String>();
        try {
            while(c.moveToNext()) {
                list.add(c.getString(c.getColumnIndex(columnName)));
            }
        } finally {
            c.close();
        }
        return list;
    }

    /**
     *
     * @param query
     * @param columnName
     * @return
     */
    public String getString(String query,String columnName) {
        //query mesle : "SELECT * FROM data"
        SQLiteDatabase sql = this.getWritableDatabase();
        Cursor c = sql.rawQuery(query, null);
        c.moveToFirst();
        return c.getString(c.getColumnIndex(columnName));

    }
    public int getInt(String query,String columnName) {
        //query mesle : "SELECT * FROM data"
        SQLiteDatabase sql = this.getWritableDatabase();
        Cursor c = sql.rawQuery(query, null);
        c.moveToFirst();
        return c.getInt(c.getColumnIndex(columnName));
    }
    public void Querry(String query) {
        SQLiteDatabase sql = this.getWritableDatabase();
        sql.execSQL(query);
    }
    public byte[] getBlob(String query,String columnName) {
        SQLiteDatabase sql = this.getWritableDatabase();
        Cursor c = sql.rawQuery(query, null);
       return c.getBlob(c.getColumnIndex(columnName));
    }
public int getRowCount(String query){
    SQLiteDatabase sql = this.getWritableDatabase();
    Cursor c = sql.rawQuery(query, null);
    return c.getCount();
}
    public int getColumnCount(String query){
        SQLiteDatabase sql = this.getWritableDatabase();
        Cursor c = sql.rawQuery(query, null);
        return c.getColumnCount();
    }



}

اینم کد اکتیویتی اصلیم در متد oncreate

 MyDatabase db=new MyDatabase(this);

       TextView tv= (TextView) findViewById(R.id.tv1);
        tv.setText(db.getString("SELECT * FROM tbl_historical_place WHERE id=1","name"));
لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...